0

我有一个小应用程序,它有一个 Activity 并以片段的形式显示内容。因此,我通过将当前片段替换为下一个片段(并将它们放在后堆栈中)来浏览我的应用程序。

该应用程序被锁定在纵向,因此 Activity 永远不会被破坏。

所以我的问题是,如何在导航到片段 B 之前保存片段 A 的“实例状态”,并在按下后退按钮时恢复实例状态,片段 A 将再次显示在屏幕上。

据我所知,片段中的 onSaveInstanceState 绑定到活动生命周期,并且仅在活动被销毁时才被调用。由于我使用单个活动并使用片段事务,因此活动永远不会被破坏,因此永远不会调用 onSaveInstanceState。

所以我尝试的第二种方法是使用 Fragment.getArguments() 和 Fragment.setArguments()。但是一旦 Fragment 被实例化,我就无法更改参数 (IllegalStateException) 。

那么任何其他想法或提示如何在这种情况下处理片段实例状态(单个活动,使用片段事务)?

4

1 回答 1

0

在 onDestroyView() 中使用 Bundle 保存实例,然后在 onCreateView() 中检索它们。

于 2013-07-23T06:56:19.520 回答