保存片段状态操作栏选项卡

Posted

技术标签:

【中文标题】保存片段状态操作栏选项卡【英文标题】:saving fragment state actionbar tab 【发布时间】:2012-04-05 23:28:51 【问题描述】:

我正在构建一个由带有选项卡的操作栏组成的应用程序,每个选项卡都由一个片段组成。其中一个片段具有需要加载的数据。所以我希望数据只在第一次加载。当用户更改选项卡并返回包含该片段的选项卡时,不要等待再次加载数据。我假设我必须使用某种保存数据的方式,以便下次用户返回该特定片段时可以使用它。但我只是不知道我应该使用什么方法。如果有人知道或可以建议保存片段状态的示例,请告诉我。谢谢你!

【问题讨论】:

【参考方案1】:

试试这个:

myFragment.setRetainInstance(true);

这意味着片段不会在每次添加时都重新创建。

【讨论】:

我试过了,但没有成功。当我转到其他选项卡并返回该特定选项卡时,再次调用 onCreate。我认为这不应该发生。 您似乎在强制重新创建片段。您需要使用相同的对象。 是的,我刚刚意识到这一点。我通过更改 TabListener 的 onTabSelected 和 onTabUnselected 函数中的一些内容解决了这个问题。当用户单击不同的选项卡时,我隐藏了我只想第一次加载的片段,而不是删除它。因此,下次用户单击该特定片段时,我只显示它。还是谢谢你的回复。 @OllieC 我也有同样的问题。我会在哪里添加myFragment.setRetainInstance(true); @Sandra 你最终做了什么来解决这个问题?

以上是关于保存片段状态操作栏选项卡的主要内容,如果未能解决你的问题,请参考以下文章

ActionBar Sherlock ,操作栏选项卡和片段

片段处理屏幕方向与操作栏中的选项卡

如何在每个操作栏选项卡中维护多个Fragment堆栈或多个子片段

操作栏选项卡:使用多次实例化的单个片段时如何传递参数

Android导航组件:如何保存片段状态

操作栏标签片段中的片段?