2

我正在开发一个平板电脑应用程序,主要活动上有两个片段。左边的片段是一个列表片段,当用户选择一个选项卡或从 ActionBar 内的 2 个微调器中选择一个项目时,它的内容会更新。

最初我通过覆盖 onConfigurationChanged 来处理方向更改。由于 Google 不建议这样做并且它会导致 ActionBarSherlock 出现问题,因此我已开始努力以正确的方式进行操作。我已将我的片段设置为保留它们的实例 (setRetainInstance) 以更改方向。

问题是当方向更改时,活动的 OnCreate 方法会将选项卡添加到操作栏并选择一个导致列表重新加载的选项卡。微调器也会发生这种情况,因为在旋转时选择了新项目。在方向更改时,列表片段无需刷新。

我知道可以保存选项卡和微调器状态,但是如何阻止列表更新,因为这是在 onTabSelected 和 onItemSelected 方法中完成的?

4

2 回答 2

1

我不知道这是否是正确的做法,但您可以创建一个局部变量(布尔值),该变量在第一个 OnCreate 之后设置并在 OnPause/OnDestroy 处重置。然后,您可以使用 created 变量来排除 onCreate 方法中某些代码段的执行。

于 2012-05-26T01:29:47.350 回答
1

如何使用onRetainNonConfigurationInstance()来保存一些不应该在方向改变时改变的状态?例如,如果您遵循@ThomasKJDK 的回答,您可以boolean在此方法中设置 。然后你可以booleanonCreate(); 并据此决定各种代码段的执行boolean

有关此方法的更多详细信息,请点击此处

于 2012-05-29T11:58:15.260 回答