android 3.1中的横向定位

时间:2012-08-14 13:46:09

标签: android android-orientation

应用程序在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。

我当前活动的半屏以及旧活动

很奇怪我不知道为什么会发生这种情况

1 个答案:

答案 0 :(得分:0)

请参阅有关值screenSize的{​​{3}}的文档。

  

当前可用的屏幕尺寸已更改。这代表了一个   相对于当前方面,改变当前可用的大小   比例,因此当用户在横向和横向之间切换时会发生变化   肖像。但是,如果您的应用程序的目标是API级别12或更低,   然后您的活动始终处理此配置更改本身   (此配置更改不会重新启动您的活动,即使是   在Android 3.2或更高版本的设备上运行。)

所以在android 3.2设置上:android:configChanges="orientation"被有效忽略,因为screenSize导致重新开始活动。在Android 3.1上,您可以防止在方向更改时重新创建活动 所以删除orientation值,它应该是好的,显然自动重新创建活动对你有好处。或者添加screenSize值,并对两个版本中都存在相同的错误感到高兴。

这是android的一个有趣的错误,在具有不同方向的活动之间切换会导致具有固定方向的活动的配置更改。