我有layout/activity_main.xml
和layout-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
。没有刷新活动。
答案 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中限制重新加载活动。