【问题标题】:Saving state of the currently displayed Fragment in a ViewPager在 ViewPager 中保存当前显示的 Fragment 的状态
【发布时间】:2018-10-21 19:17:20
【问题描述】:

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

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

我一直在寻找围绕 Fragment 生命周期的不同解决方案,但它们都不适用于我的特定场景。对此问题的任何建议将不胜感激!

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

【问题讨论】:

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


    【解决方案1】:

    设备重新定向是一个破坏性的过程,因为它会破坏当前显示在屏幕上的 Activity,并且由于它们的生命周期是捆绑在一起的,因此任何附加到该 Activity 的片段也会如此。要恢复 UI 状态,我要做的就是将该信息作为标志/字段保存在 ViewModel 实例中。因此,当设备重新定向并重新创建 Activity/Fragments 时,您可以检索 VideModel 并检查其字段以了解最初应该显示哪个片段。

    【讨论】:

      猜你喜欢
      • 2011-10-13
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 2015-10-24
      • 2013-08-25
      • 2015-02-05
      • 1970-01-01
      相关资源
      最近更新 更多