2012-12-11 24 views
0

好日子所有,我是在什麼樣的卡住,我想我在路上片段mistakening概念和活動的方向變化時的處理。基本上,我有一個活動中的3個片段,通過頁腳通過framelayout動態加載。默認情況下,當應用程序啓動時,會顯示第一個片段,這意味着只要該活動被銷燬並創建,就會顯示第一個片段。現在我想要的是在方向更改之前的當前可見片段在使用不同的UI佈局進行方向更改之後可見。但是當我嘗試顯示片段或其他任何內容時,我會看到一個空視圖。顯示方向改變當前可見的片段讓空/空觀點的Android

在我的活動

的onCreate我有此:

if(savedInstanceState != null){ 
      switchTag = savedInstanceState.getString(SAVED_CURRENT_FRAGMENT_STATE); 
      Log.d(TAG, "fragment after orientation is " + switchTag); 
       displayCurrentFragment(switchTag);   

     }else { 

      dashboardfragment = new DashBoardFragment(); 
       ft.add(R.id.dashboard_fragment_container_id, dashboardfragment, DASHBOARD_FRAG_TAG); 
       ft.commit(); 
     }  

和我的onSaveInstanceState覆蓋和onConfigurationChanged在活動:

@Override 
public void onSaveInstanceState(Bundle outState) { 

    Log.d(TAG, "OnSavedInstance() on dashboard activity"); 
    outState.putString(SAVED_CURRENT_FRAGMENT_STATE, switchTag); // to save the current visible fragment 

    super.onSaveInstanceState(outState); 

} 

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    setContentView(R.layout.dashboard_layout); // same as oncreate 
} 

我也在片段覆蓋的onSaveInstanceState()爲好。

所以我的問題

  1. 是這樣來處理屏幕方向片段和活動的正確方法?

  2. 如果我重寫onsavedInstanceState在我的片段中,什麼特定的方法被調用在活動中?

對不起,如果我的問題到處都是,但它讓我非常困惑!定向變化中保持碎片狀態的實際過程是什麼?謝謝。

回答

0

您是否在佈局中使用xml作爲碎片?確保水平和垂直佈局的佈局都有定義的片段

+0

沒有動態添加我的片段。只是使用framelayout作爲容器 – irobotxxx

+0

如果您不更改佈局,爲什麼要重寫onConfigurationChanged方法? – user1634451

+0

謝謝!我剛剛檢查並刪除了該行,它運行良好。可能你可以編輯你的答案,所以我可以標記它。 – irobotxxx

相關問題