android防止更改方向刷新

时间:2015-03-02 02:57:48

标签: android layout android-orientation

我有layout/activity_main.xmllayout-land/activity_main.xml。当我改变方向时,活动会再次重新加载。

我尝试使用此代码android:configChanges="keyboardHidden|orientation"并且它的工作原理是活动不会重新加载我喜欢的内容,但问题是布局没有从layout/activity_main.xml切换到layout-land/activity_main.xml

如何从layout/activity_main.xml切换到layout-land/activity_main.xml。没有刷新活动。

2 个答案:

答案 0 :(得分:4)

通过声明android:configChanges="orientation|screenSize",您指示活动管理器不重新启动您的活动,并让您通过onConfigurationChanged()处理配置更改。

  

如果您的应用程序在特定配置更改期间不需要更新资源,并且您有性能限制要求您避免重新启动活动,那么您可以声明您的活动自己处理配置更改,这会阻止系统从重新开始你的活动。

来源:http://developer.android.com/guide/topics/resources/runtime-changes.html

这意味着在更改配置时将跳过onCreate(),并且您无法交换布局(因为onCreate()是您重新创建视图的地方)。

在您的情况下,您想要更改布局,因此除了刷新您的活动之外别无选择,这意味着要删除android:configChanges="orientation|screenSize"。如果您想保持状态,可以保存并检查传递给Bundle的{​​{1}}以相应地恢复状态。

onCreate()

更多参考:http://developer.android.com/training/basics/activity-lifecycle/recreating.html

答案 1 :(得分:2)

尝试使用:

android:configChanges="orientation|screenSize"

在标记中的Android Manifest中限制重新加载活动。