首次转弯后Android方向不会改变

时间:2012-03-04 01:33:03

标签: android orientation

我正在制作一个从纵向开始的简单屏幕。在第一次切换到横向方向后,它完美地工作。 虽然当我尝试切换回肖像时,屏幕会保持在风景中。

有关正在发生的事情的任何想法?

显示“一个”活动的代码

 <activity
            android:name=".LoginActivity"
            android:label="Login"
            android:configChanges="orientation|keyboardHidden|keyboard" >
            <intent-filter>
                <action android:name="com.DCWebMakers.Vairon.LOGINACTIVITY" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

2 个答案:

答案 0 :(得分:2)

你的清单是骗Android的。您的android:configChanges表示您的应用会处理方向更改,但却没有。 Docs

  

机器人:configChanges

     

列出活动将自行处理的配置更改。在运行时发生配置更改时,默认情况下会关闭并重新启动活动,但声明具有此属性的配置将阻止活动重新启动。相反,活动仍在运行,并调用其onConfigurationChanged()方法。

     

注意:应避免使用此属性,并仅将其用作最后的手段。有关如何正确处理因配置更改而导致重启的详细信息,请阅读Handling Runtime Changes

答案 1 :(得分:0)

有一个已知的long-standing emulator bug表现出这种一次性切换行为 - 所以如果你使用模拟器,那可以解释这个问题。

为了解释第一个方向开关,我认为要么:

  1. 当你进行切换时,你实际上并没有LoginActivity,而是另一个没有设置configChanges="orientation...标志的活动。

  2. 或者您可能在启动应用之前更改了方向,例如从主屏幕进行。然后,您的应用程序以横向方式启动,并且在您尝试更改方向时不会响应。