我有一個FragmentActivity
和兩個Fragment
s,說FrgMaster
(a ListFragment
)和FrgDetail
。我有兩個佈局XML文件:一個包含單個FrameLayout
(用於縱向模式),另一個包含兩個FrameLayout
(用於橫向)。我想實例化我FragmentActivity
的片段,在onCreate()
我有類似:片段活動:正確的片段實例
if (savedInstanceState == null) {
final FrgMaster fragment = new FrgMaster();
// Add the fragment to the FrameLayout
this.getSupportFragmentManager()
.beginTransaction()
.add(R.id.frame_for_master, fragment, FrgMaster.MY_TAG)
.commit();
}
我瀏覽列表,點擊的地方。現在,當我改變方向時,上面的代碼不起作用,因爲savedInstanceState
不是null
;因此片段不會添加到佈局中。如果我刪除if
條件,則最終會生成多個片段,每個片段對應於一個方向更改,堆疊。
我錯過了什麼?
「現在,當我改變方向時,上面的代碼不起作用,因爲savedInstanceState不爲空;因此片段不會添加到佈局中「 - 它應該作爲正常配置更改處理的一部分自動重新添加到佈局。見https://github.com/commonsguy/cw-omnibus/tree/master/LargeScreen/EU4You – CommonsWare 2013-03-05 00:51:57
我不確定你的意思。你提出另一種方法?這是我不應該做的事情? – denispyr 2013-03-05 00:58:12
不,更多的是你可能應該工作,但我傾向於使用科里斯科特在他的答案中。 – CommonsWare 2013-03-05 01:07:09