Android-蜂巢-操作栏选项卡碎片保存/恢复状态

Android-蜂巢-操作栏选项卡碎片保存/恢复状态,android,Android,在文档中,它说要确保在使用带有操作栏的选项卡时保存片段的状态,以便在切换选项卡时片段看起来与以前一样。这是怎么做到的?使用处理选项卡的示例,切换选项卡时不会调用onSavedInstanceState,因此我将在何处保存状态?我是在活动层面上做的吗?我只希望状态是暂时的 谢谢Fragment.onSaveInstanceState是合适的位置。当需要保存状态时将调用。如果不调用它,则不需要保存。我遇到了完全相同的问题,并提出了一个感觉冗余的解决方案。我认为该功能在以后会更好地工作,但它确实工作。

在文档中,它说要确保在使用带有操作栏的选项卡时保存片段的状态,以便在切换选项卡时片段看起来与以前一样。这是怎么做到的?使用处理选项卡的示例,切换选项卡时不会调用onSavedInstanceState,因此我将在何处保存状态?我是在活动层面上做的吗?我只希望状态是暂时的


谢谢

Fragment.onSaveInstanceState是合适的位置。当需要保存状态时将调用。如果不调用它,则不需要保存。

我遇到了完全相同的问题,并提出了一个感觉冗余的解决方案。我认为该功能在以后会更好地工作,但它确实工作。解决方案是通过活动手动管理状态包

保存状态:在每个片段中,实现一个名为getState的函数,该函数将返回一个包含片段想要保存的任何状态数据的包。然后,活动应该在从视图中删除片段之前调用它


还原状态:在片段中实现一个方法或构造函数,该方法或构造函数接受它之前保存的相同捆绑包,并解压要使用的捆绑包,不管它对片段有什么意义。当活动将片段添加回视图时,将捆绑包传递到前面提供的片段中,您应该被设置。

这对我不起作用。如果您使用处理选项卡的示例方式,则片段管理器会在您取消选择选项卡时删除片段,并在您选择选项卡时添加片段。如果你有一个ListFragment,当你回到它的选项卡时,它甚至不记得你在列表中的位置。3.0之前,如果选项卡中有活动,则系统会记住它们的状态。我尝试在HC中执行相同的操作,但未调用onSavedInstanceState。只有在片段完全删除时,才会调用onSaveInstance状态。例如,如果更改屏幕方向。如果要在从布局中删除选项卡时保存某些内容,请在选中选项卡时显示的片段中覆盖onPause。如果我将更新的捆绑包存储在onPause中,如何使其通过onActivityCreated块?我无法调用setArgument,因为该片段仍然处于活动状态。您可以在其中存储您的内容onSaveInstanceState,以便在以后创建时将其取回。如果您的片段没有被重新创建,那么相同的对象就在那里,因此您可以只使用您的成员变量。当在具有最低Android支持的选项卡之间切换到API12级别时,恢复片段状态的正确方法是什么?As level platform v3.1没有FragmentTransaction.Atach/Detach fragments这样的方法?!切换选项卡时不调用onSaveInstanceState。