保存状态导航抽屉页面(片段)

时间:2014-11-26 14:25:37

标签: android android-fragments fragment

我搜索过SO并且无法找到有效的内容。

这是我想要做的,当我在导航抽屉页面之间导航时,我希望视图是相同的。所以,如果我从A页到B,然后从B到A,我希望A具有相同的状态。

在我的应用程序中,我通过一些按钮向片段A添加了一些文本。当我导航到片段B,然后返回到A时,文本消失了。我希望文本仍然存在。

我该怎么做?

我已经尝试过setRetainState(true)。这不起作用。我还确保新的Fragment()仅在转到页面时调用一次。这也行不通。

导航抽屉的结构与Android文档中显示的相同。

1 个答案:

答案 0 :(得分:0)

我认为,如果你有一个导航抽屉,你可以为每个页面使用片段。 在导航抽屉中选择项目时,不要重新创建片段,只要它从后面的堆栈中弹出就可以了。

 HomeFragment homeFragment = (HomeFragment) fm.findFragmentByTag(fragmentName);
 if (homeFragment == null) {
     homeFragment = new HomeFragment();
     fm.beginTransaction().addToBackStack(fragmentName).replace(R.id.content_frame, homeFragment, fragmentName).commit();
 } else {
      fm.popBackStackImmediate(fragmentName, 0);
 }