[英]Landscape Orientation in android 3.1
应用程序在android 3.2上工作正常,但在android 3.1上工作不正常
我的应用程序处于横向模式,我明确表示
<activity
android:name=".GameActivity"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden"
>
并覆盖了我在横向模式下设置的onConfigchanges。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
现在的问题是,当我在3.1中运行我的应用程序时,发生了一些更严重的问题。 当我按主屏幕..使其处于potrait模式并再次返回时,我的应用开始活动,但显示我当前活动和其他活动isingleTop的一半屏幕。
半屏显示我当前的活动以及旧活动
我不知道为什么会这样,这很奇怪
请参阅有关android:config的文档,有关value screenSize
。
当前的可用屏幕尺寸已更改。 这表示相对于当前长宽比的当前可用大小的更改,因此当用户在横向和纵向之间切换时,此更改将改变。 但是,如果您的应用程序以API级别12或更低级别为目标,则您的活动始终会自行处理此配置更改(即使在Android 3.2或更高版本的设备上运行,此配置更改也不会重新启动您的活动)。
因此,在android 3.2上,由于screenSize导致活动的重新产生,因此android:configChanges="orientation"
被有效地忽略了。 在android 3.1上,当方向更改时,可以防止重新激活Activity。
因此,删除orientation
值就可以了,显然,自动进行活动重装对您有好处。 或添加screenSize
值,并高兴地看到两个版本中都存在相同的错误。
这是android的一个有趣的错误,它在具有不同方向的活动之间切换会导致具有固定方向的活动的配置更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.