在一個Activity中,我們稱其為MasterActivity,我只想在橫向模式下加載媒體播放的細節片段.準備就緒后,媒體將自動啟動.
主從流程設置:我有兩個xml,activity_master和activity_master.xml(land).標識為“ detail_container”的容器視圖僅位于景觀xml中.具有細節容器的landscape xml的目的是在同一屏幕上顯示寬度大于900的主細節.
在onCreate()中,這是我通過檢查“ detail_container”是否存在來確定屏幕方向的方式,如下所示:
if (findViewById(R.id.detail_container) != null) {
// The detail container view will be present only in the
// large-screen layouts (res/values-w900dp).
// If this view is present, then the
mTwoPane = true;
}
以及在活動的OnCreate()中,當活動處于兩個窗格模式(大屏幕布局上的風景)時,我具有以下代碼來自動加載片段
if (mTwoPane) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.detail_container,
someFragment.newInstance(MEDIA_URI))
.commit();
}
問題:
當我垂直開始活動時,該片段未加載(預期).
當我在橫向啟動活動時,將加載(預期)片段.
在屏幕旋轉時,片段被破壞(預期,播放停止并且僅在onDestory()中釋放資源);
問題是當我在橫向中開始活動但將其旋轉到垂直方向時,片段重新啟動,并且媒體播放再次開始(意外).
我的目標:我希望片段在大屏幕設備上處于橫向時自動加載,在設備旋轉時,片段不應再次加載.
編輯:在垂直模式下,片段不應自動加載,用戶將單擊主活動,打開明細活動,并且明細活動將承載明細片段.
我應該怎么做?先感謝您
額外信息:測試物理設備是運行Android 5.0 API 21的7英寸平板電腦,模擬器中也存在此問題.