0

我有一个从片段 A 开始的片段活动,然后可以更改为片段 B。如果我在片段 B 上并且我旋转我的设备。它加载了原始的片段 A 而不是片段 B。我正在务实地加载片段 A 和 B。我认为android应该自动保存我所在的片段我没有覆盖onSaveInstanceState

这就是我加载片段的方式

FragmentTransaction t = this.getSupportFragmentManager()
            .beginTransaction();
    t.replace(R.id.fragholder, new MainFragment());
    t.commit();
4

2 回答 2

0

当您旋转设备时,它会破坏您的 Activity 并重新创建它。因此,假设 Fragment A 是默认 Fragment,那么在重新创建 Activity 时它会加载它是合乎逻辑的。因此,您需要覆盖 onSaveInstanceState 以存储可见的 Fragment,然后在 onCreate 中重新加载该 Fragment。

参考相关活动生命周期文档:http: //developer.android.com/training/basics/activity-lifecycle/recreating.html

于 2013-02-22T22:16:32.257 回答
0

只需将 android:configChanges="orientation|screenSize" 添加到您的清单中,android 就会为您处理一切

于 2013-02-27T00:01:01.720 回答