代码之家  ›  专栏  ›  技术社区  ›  Nick

带有片段寻呼机适配器和fragment-retainInstanceState的Viewpager在方向更改时重新创建片段

  •  1
  • Nick  · 技术社区  · 10 年前

    当我在片段中使用retainInstanceState(true)并将其与FragmentPagerAdapter一起使用时,片段被重新创建。这不是预期的行为。什么是潜在的解决方案

    我找到了 a blog post 这提供了一个不使用retainInstance State的解决方案,这在我的情况下是不可能的

    1 回复  |  直到 10 年前
        1
  •  0
  •   Nick    10 年前

    结果是viewpager保留片段并尝试查找具有该id的片段。

    Fragment的onCreate中要做的第一件事:

    setRetainInstance(true);
    

    在带有选项卡的活动中,确保处理 onSaveInstanceState 正确地

    @Override
    public void onSaveInstanceState(bundle){
       super.onSaveInstanceState(bundle);
    }
    

    即使 没有 按照类似问题中的建议保存viewpager id或对片段的引用,相同的片段将在方向更改时重新附加