【发布时间】:2015-05-21 13:33:22
【问题描述】:
我收到错误:
错误的是,Android 框架同时调用了多个片段的 onCreateView()
我有 导航抽屉 3 FrameLayout:A、B、C
1.) 通过抽屉的 B 选项,用户到达 B2 片段。
2.) 用户按下 B2 片段上的 Home Key 并进入主屏幕。
3.) 用户长按 Home 键,从 Android 的 Recents Activity 中打开此应用
这里出现错误,如图中 1 为蓝色
我的多个片段正在获得 onCreate() 、 onCreateView() 和 onActivityCreated() 事件,因此我正在丢失 B2 的片段状态,我的应用程序转到默认片段 A1(从抽屉选项 A 打开)
我还使用onSaveInstanceState() 保存了我的B2 状态并使用onActivityCreated() 恢复,但这种方法不起作用,因为onActivityCreated() 首先被称为B2,然后是A1。因此,我的 B2 片段在前台屏幕上不可见。取而代之的是,A1 在屏幕上可见
注意:
我在所有情况下都使用.replace()切换片段
相同的代码在 Android 5.0+ (Lollipop) 中运行正确,但在 4.4(和更早版本)中出现错误
任何人都可以提出任何解决方法吗?
【问题讨论】:
标签: android android-fragments fragment-lifecycle