私のアクティビティには、縦向きと横向きの 2 つの異なる xml レイアウトがあります。Activity の 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: フラグメント Frag のコンテナー ID を変更できません
実際、両方のxmlで同じコンテナIDを使用すると機能しますが、私の場合は解決策ではありません. さまざまなランダムな解決策(アクティビティを破棄する前にデタッチするなど)を試しましたが、成功しませんでした..
何か考えはありますか?