Activity
|
|
Fragment1 --> Fragment2 --> Fragment3 --> Fragment4
|
|
Orientation changed
|
|
Fragment3 <-- Fragment4
|
|
Fragment3 --> Fragment5
Scenario : 1. I am having an application with single activity with fragment.
2. In oncreate of fragment i enabled setRetainInstance(true);
3. After launching the activity i am navigating from fragment 1 to fragment 2 by added to back stack and commit.
4. Same for fragment 2 to fragment 3 and fragment 3 to fragment 4.
5. From fragment 4 i changed the orientation. As mentioned due to setRetainInstance(true);. Fragment 4 onViewCreated has called.
6. But when go back to fragment 3 by pressing back button. And make a transcation from fragment 3 to frament 5. I got an exception "*
java.lang.IllegalStateException:onSaveInstanceState 后无法执行此操作
”。
**As far as i searched i found few solution,
1. override onSavedInstance, dont call super method. [I dont want to use this]
2. And manifest declare , android:configChanges="orientation|screenSize|keyboardHidden" [I dont want to use this] I want to handle config changes.**
请有人向我解释在方向改变后处理回栈片段的正确方法是什么。[注意:当我尝试从片段 3 提交到新片段 5 时,它崩溃了。]
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.addToBackStack(TAG);
transaction.replace(containerID, baseFragment,TAG);
transaction.commit();