当前位置:  开发笔记 > 编程语言 > 正文

Android,旋转设备时如何不破坏活动?

如何解决《Android,旋转设备时如何不破坏活动?》经验,为你挑选了4个好方法。

我有一个仅在纵向模式下工作的应用程序,我已经在清单文件中对每个活动进行了更改,其方向为纵向.但是当我旋转设备时,活动会再次重新创建.如何不破坏活动?



1> 小智..:

对于API 12及以下版本:添加

android:configChanges="orientation"

如果您的目标是API 13或更高版本,请添加"screenSize" ,因为无论何时您的方向发生变化,屏幕尺寸都会发生变化,否则新设备将继续破坏您的活动.有关使用"screenSize"的更多信息,请参阅下面的Egg的答案

android:configChanges="orientation|screenSize"

到AndroidManifest.xml中的Activity.这样您的Activity就不会自动重启.有关更多信息,请参阅文档


在你用什么设备编程?记住,例如滑出键盘也可以重新启动你的活动...(如果这是设置confChanges到"keyboard | keyboardHidden | orientation"的原因)
这会禁用布局更改.我该如何解决这个问题?

2> 小智..:

从官方文件flurin说,

注意:如果您的应用程序的目标是13级或更高级别的API(由minSdkVersion和targetSdkVersion属性声明),那么您还应该声明"screenSize"配置,因为当设备在纵向和横向之间切换时它也会发生变化.

因此,如果您的应用面向API级别13或更高级别,则应设置此配置:

android:configChanges="orientation|screenSize"


非常感谢!所有其他答案都错过了API级别13引入此屏幕大小的部分.你救了我的命!:)

3> er_benji..:

正确的解决方案是

机器人:configChanges = "方向|屏幕尺寸"

Android文档:

当前可用的屏幕大小已更改.这表示当前可用大小相对于当前宽高比的变化,因此当用户在横向和纵向之间切换时会发生变化.但是,如果您的应用程序的目标是API级别12或更低,那么您的活动始终会自行处理此配置更改(即使在Android 3.2或更高版本的设备上运行,此配置更改也不会重新启动您的活动).



4> superheron..:

我把它弄乱了一点,然后想办法在清单文件中将configChanges放在应用程序级别而不是活动级别。这是对我来说正确的代码。


        
        
            
            
        
     
 


您应该在帖子中分享代码,而不是图片。
推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有