小编Ste*_*viN的帖子

旋转设备两次时片段会失去其状态

我有一个显示两个片段的活动:

  • 创建活动后,会显示Fragment1
  • 当用户按下 上的按钮时Fragment1,它会显示Fragment2,添加到后台堆栈。

片段很简单。Fragment1包含CheckBoxEditTextFragment2包含简单的TextView. 我还调用setRetainInstance(true)了fragment的onCreate(...)方法。

问题:如果显示 且设备旋转两次Fragment1,则会丢失其状态。然而,如果设备仅旋转一次,一切都会按预期进行。Fragment2

重现步骤:

  1. 启动程序。
  2. 检查CheckBox并输入一些文本EditText
  3. Button启动Fragment2
  4. 旋转设备
  5. 再次旋转设备
  6. Back设备(或ESC模拟器)上的按钮返回Fragment1

Fragment1失去其状态(复选框未选中且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)

android android-fragments

5
推荐指数
1
解决办法
2180
查看次数

标签 统计

android ×1

android-fragments ×1