[英]android prevent refresh on change orientation
我有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
。 没有刷新活动。
通过声明android:configChanges="orientation|screenSize"
您可以指示Activity Manager不重新启动您的活动,并让您通过onConfigurationChanged()
处理配置更改。
如果您的应用程序在特定配置更改期间不需要更新资源,并且您有性能限制要求您避免重新启动活动,那么您可以声明您的活动自己处理配置更改,这会阻止系统重新启动您的活动。
资料来源: http : //developer.android.com/guide/topics/resources/runtime-changes.html
这意味着onCreate()
将在配置更改时被跳过,并且您无法交换布局(因为onCreate()
是重新创建视图的位置)。
在你的情况下,你想要改变布局,所以别无选择,只能刷新你的活动,这意味着删除android:configChanges="orientation|screenSize"
。 如果要保持状态,可以保存并检查传递给onCreate()
的Bundle
以相应地恢复状态。
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// set your layoutId according to landscape/portrait
setContentView(layoutId);
if (savedInstanceState != null) {
// restore your state here
}
...
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// save your state here
}
有关更多参考: http : //developer.android.com/training/basics/activity-lifecycle/recreating.html
试试这个:
android:configChanges="orientation|screenSize"
在您的< activity >标记中的Android Manifest中限制重新加载活动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.