我的活動有2種不同的縱向和橫向xml佈局。我試圖使用相同的片段的方向變化時,在活動的onCreate()代碼:在不同的容器中顯示片段,具體取決於方向
if (savedInstanceState == null) {
frag = Fragment
.instantiate(this, PlayerControlsFragment.class.getName());
} else {
frag = fragmentManager.findFragmentByTag(FRAG_TAG);
}
然後根據定位:
private void initLandscapePlayerFragment(FragmentTransaction ft) {
ft.add(R.id.layout_center_top, frag);
}
private void initPortraitPlayerFragment(FragmentTransaction ft) {
ft.add(R.id.layout_left_top, frag);
}
,它給了我一個很好的
IllegalStateException異常:不能改變片段分片的容器ID
事實上,當我在兩個xml中使用相同的容器標識時,它都能正常工作,但對我而言這不是一個解決方案。 我已經嘗試過不同的隨機解決方案(拆除之前摧毀活動等)沒有成功..
任何想法?
爲什麼你需要不同的容器ID? – andyandy
好吧,我的佈局結構是完全不同的,無論我是縱向還是橫向... – elgui
並且縱向模式對於我的所有片段只使用一個容器(由操作欄導航選項卡切換),我無法在相同容器ID中使用相同的容器ID兩種模式(橫向顯示3個容器中的所有3個片段) – elgui