方向更改时,请勿重新加载活动并按正确顺序放置碎片

时间:2014-11-14 14:30:34

标签: android android-fragments android-orientation android-configchanges

我在我的应用程序中使用了framgents,并且我在平板电脑上有横向(左和右)和纵向(向上和向下)的双窗格布局。

我有一个活动,它将片段加载到左选择窗格中,然后您可以在某个Spinner中选择几个条件来进行搜索。在右侧片段中显示了ListView中的搜索结果。

如果我在Manifest.xml中的此活动中使用android:configChanges="orientation",则会保存搜索结果,但我在横向模式下上下都有窗格布局,而不是左右两侧,因为它应该是。 如果我不使用android:configChanges="orientation"我有两个窗格布局顺序正确(在lanscape模式下左右)但我没有搜索结果,活动重新启动。

我怎么解决?有什么想法吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

你应该使用onSaveInstanceState()和onRestoreInstanceState()

您需要重新创建视图才能使布局看起来正确,但在重新创建时数据将会丢失。您必须使用我提到的方法或使用共享首选项保存此数据(用于保存应用程序退出后持续的更长时间的数据)。

不要使用android:configChanges =" orientation"。这可以防止重新创建布局,并希望您自己处理它。

有关详细信息,请参阅文档: http://developer.android.com/training/basics/activity-lifecycle/recreating.html http://developer.android.com/reference/android/content/SharedPreferences.html