建筑
Activity A
保留Fragment A
,可以在backstack上添加Fragment B
。
问题
Fragment B
保留通过API响应生成的Views
。
这些Views
的状态是我需要能够在轮换后或通过再次使用Fragment A
和午餐onBackPressed
返回Fragment B
时重新创建的内容。
我已经阅读了关于背后的Fragments
的一些关于SO的主题,我知道他们无法保留实例。
我应该怎样做才能取得这样的结果?
答案 0 :(得分:3)
Fragments
始终可以保留实例。简单地处于暂停状态的backstack上的Activity
或Fragment
。因此,您希望将数据/变量保存在该类的onSaveInstanceState
方法中(您将覆盖它)。
现在要从已保存的状态恢复,您会注意到活动,片段的onCreate
,onCreateView
分别传入Bundle savedInstanceState
参数。这是您的位置在上一步中保存了您的状态,因此,您可以添加
if (savedInstanceState != null) {
//TODO: restore the state
}
到你的onCreate / onCreateView方法,你应该好好去。