ViewPager中当前显示的片段的保存状态

时间:2018-10-21 19:17:20

标签: android android-fragments android-viewpager android-lifecycle

我目前正在使用TabLayout,该TabLayout使用ViewPager来显示Fragment的三个不同实例。这些是我的主从流程中的“主”片段。

当用户旋转屏幕时,应用程序将显示两个片段,即主片段和详细片段。我一直试图实现的是从纵向模式转换为横向模式时显示相同的主片段。因此,如果我当前正在查看位于第二个选项卡中的“ MyFragment”的第二个实例,则希望在屏幕旋转时在我的主片段中具有相同的实例。

我一直在寻找有关Fragment生命周期的不同解决方案,但是它们都不适合我的特定情况。对于这个问题的任何建议,将不胜感激!

如果问题还不够清楚,需要代码,我将用必要的代码编辑这篇文章。

1 个答案:

答案 0 :(得分:0)

设备重新定向是一个破坏性的过程,因为它会破坏屏幕上当前显示的活动,并且由于它们的生命周期是紧密联系的,因此任何附加到该活动的片段也将被束缚。要恢复UI状态,那么我要做的是将该信息作为标记/字段保留在ViewModel实例中。因此,当设备重新定位并重新创建“活动/片段”时,您可以检索VideModel并检查其字段以了解最初应显示哪个片段。