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

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

3

试试这个:

myFragment.setRetainInstance(true);

这意味着当片段被添加时,它不会每次重新创建。

我已经尝试了,但没有起作用。当我切换到其他选项卡然后回到该特定选项卡时,onCreate方法会再次调用。我认为这应该不会发生。 - Sandra
2
看起来你正在强制重新创建Fragment。你需要使用相同的对象。 - Ollie C
3
是的,我刚刚意识到了。我通过更改TabListener中onTabSelected和onTabUnselected函数中的一些内容来解决问题。当用户点击不同的选项卡时,我隐藏了我希望仅在第一次加载的片段,而不是删除它。因此,下一次用户点击该特定片段时,我只显示它。无论如何,谢谢您的回复。 - Sandra
1
@OllieC 我也遇到了同样的问题。我应该在哪里添加 myFragment.setRetainInstance(true); - Si8
@Sandra,你最终是怎么解决这个问题的? - Si8
你可以在上面的评论中找到我的答案。我隐藏了感兴趣的片段(那个我不想再次创建的片段),所以当我点击回到那个选项卡时,我只是将它显示出来。使用选项卡监听器的方法。 - Sandra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接