我有一个显示两个片段的活动:
Fragment1。Fragment1,它会显示Fragment2,添加到后台堆栈。片段很简单。Fragment1包含CheckBox和EditText。Fragment2包含简单的TextView. 我还调用setRetainInstance(true)了fragment的onCreate(...)方法。
问题:如果显示 且设备旋转两次Fragment1,则会丢失其状态。然而,如果设备仅旋转一次,一切都会按预期进行。Fragment2
重现步骤:
CheckBox并输入一些文本EditTextButton启动Fragment2Back设备(或ESC模拟器)上的按钮返回Fragment1Fragment1失去其状态(复选框未选中且EditText为空)。然而,如果你回到Fragment1之后step#4-Fragment1则会按预期保持其状态。
哪里有问题?所有代码如下,包括布局。
主要.xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/placeholder"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)
片段1.xml:
<?xml version="1.0" encoding="utf-8"?> …Run Code Online (Sandbox Code Playgroud)