我通过替换在多个片段之间切换。片段也被添加到后栈。
现在我希望在方向更改时不再创建片段。我把setRetainInstance(true)
放在每个人身上。
片段A表现不错。然后我切换到片段B,旋转屏幕并看到片段A.我做错了什么?或者这是预期的吗?
答案 0 :(得分:4)
将 setRetainInstance(true)调用为片段不会阻止您的活动破坏并重新创建自身。您可能在 onCreate 方法中初始化了第一个片段,因此它可以按预期使用您的第一个片段,但不能与第二个片段一起使用。您需要在活动中使用 onSaveInstanceState 方法存储显示哪个片段,并在OnCreate中显示相应的片段,或者您需要将活动标志设置为 android:configChanges =“keyboardHidden | orientation | screenSize“,以防止屏幕方向更改时出现破坏。