目前的情況上旋轉片段變動具有導航抽屜
在我的應用我有片段導航的抽屜裏。在縱向模式下一切正常。
問題
假設當在縱向模式下我選擇導航抽屜第二項。它可以完美加載,但是當我將手機旋轉到橫向模式時,導航菜單中的第一個片段會被加載而不是第二個。
我知道我有救實例的片段,但我不知道該怎麼做,我應該做的主要活動或片段本身
目前的情況上旋轉片段變動具有導航抽屜
在我的應用我有片段導航的抽屜裏。在縱向模式下一切正常。
問題
假設當在縱向模式下我選擇導航抽屜第二項。它可以完美加載,但是當我將手機旋轉到橫向模式時,導航菜單中的第一個片段會被加載而不是第二個。
我知道我有救實例的片段,但我不知道該怎麼做,我應該做的主要活動或片段本身
你應該做的是在你的Fragment
。
只要按照這些鏈接:
Android - save/restore fragment state
或許:
Once for all, how to correctly save instance state of Fragments in back stack?
此外,我們再提一下onRestoreInstanceState
,Fragment
的不具有method.So,你應該使用onActivityCreated
,它接收bundle
以及保存的實例狀態(或空值)。
在文檔看看:
我回答這個線程同樣的問題:
我試圖解釋爲什麼該解決方案,我給作品,所以如果你有興趣檢查一下。
爲了解決這個問題我簡單地把該膨脹內部的初始片段的代碼,如果(在導航抽屜活動的OnCreate):
super.onCreate(savedInstanceState);
if(savedInstanceState==null){
FragmentManager fM = getSupportFragmentManager();
fM.beginTransaction().replace(R.id.NavDrawContent,new home_fragment()).commit();
}
,使得它不膨脹,當第一片段我們在第二個方向改變方向
我已經在onActivityCreated中使用了setRetainState。還有什麼要求? –
檢查此鏈接:http://stackoverflow.com/questions/11182180/understanding-fragments-setretaininstanceboolean – Mohsen
感謝您指向鏈接我得到我的代碼工作與某些修改。我正在通過硬編碼的int來顯示主要活動中的片段方法。所以在保存實例狀態,我剛剛保存了位置,然後在onCreate –