我正在制作一个从纵向开始的简单屏幕。在第一次切换到横向方向后,它完美地工作。 虽然当我尝试切换回肖像时,屏幕会保持在风景中。
有关正在发生的事情的任何想法?
显示“一个”活动的代码
<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>
答案 0 :(得分:2)
你的清单是骗Android的。您的android:configChanges
表示您的应用会处理方向更改,但却没有。 Docs:
机器人:configChanges
列出活动将自行处理的配置更改。在运行时发生配置更改时,默认情况下会关闭并重新启动活动,但声明具有此属性的配置将阻止活动重新启动。相反,活动仍在运行,并调用其onConfigurationChanged()方法。
注意:应避免使用此属性,并仅将其用作最后的手段。有关如何正确处理因配置更改而导致重启的详细信息,请阅读Handling Runtime Changes。
答案 1 :(得分:0)
有一个已知的long-standing emulator bug表现出这种一次性切换行为 - 所以如果你使用模拟器,那可以解释这个问题。
为了解释第一个方向开关,我认为要么:
当你进行切换时,你实际上并没有LoginActivity
,而是另一个没有设置configChanges="orientation...
标志的活动。
或者您可能在启动应用之前更改了方向,例如从主屏幕进行。然后,您的应用程序以横向方式启动,并且在您尝试更改方向时不会响应。