在文档中提到,当使用操作栏与选项卡时,请确保保存片段的状态,以便在切换选项卡时,片段看起来与之前相同。这应该如何完成?在处理选项卡的示例中,当切换选项卡时不会调用 onSavedInstanceState,那么我应该在哪里保存状态?我是在活动级别上执行此操作吗?我只希望状态是短暂的。
谢谢
谢谢
Fragment.onSaveInstanceState() 是合适的位置。当需要保存状态时,它将被调用。如果没有被调用,那么它还不需要被保存。
我遇到了完全相同的问题,并想出了一个解决方案,感觉有些冗余(我认为这个功能将来会更好地工作),但它确实有效。解决方案是通过活动手动管理状态束。
保存状态:在每个片段中,实现一个名为 getState() 的函数,该函数将返回包含片段想要保存的任何状态数据的捆绑包。然后,活动应在从视图中删除片段之前调用该函数。
恢复状态:在片段中实现一个方法或构造函数,接受之前保存的相同捆绑包,并解压缩捆绑包以便根据片段的需要使用。当活动将片段重新添加到视图中时,传递先前提供的捆绑包,然后您就可以开始了。
onPause
中存储Bundle,如何让更新后的Bundle通过onActivityCreated
快速传递?因为Fragment还处于活动状态,所以我无法调用setArgument
方法。 - Sameer Segal