我知道磁贴似乎很混乱,但是,是的,它发生在我的应用程序中。好的,这是故事。
以下是清单中的关键设置:
android:screenOrientation="portrait"
android:configChanges="orientation|screenSize|keyboardHidden"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
在Activity.java中,我还覆盖了onConfigurationChanged(Configuration config)
,它将打印出当前方向。
这是最有趣的部分。我使用Intent从风景中的应用程序中启动一个可旋转的应用程序,例如Gallery(假设它可以旋转)。将手机放在横向,然后按返回键。新启动的活动(在本例中为Gallery)将退出,我的应用程序将重新启动。理论上,由于我将screenOrientation
设置为纵向,因此我的应用程序应该以纵向显示。但是,实际上,我的应用程序仅停留在纵向状态1秒钟,然后跳至横向,然后再次跳回纵向。
在调用requestedOrientation
之后,我启动了一个线程以打印出我的应用程序的onRestart
。而且我发现输出始终为“ 1”,即“肖像”。但是,onConfigurationChanged
的输出给了我当前的风景方向!
所以,我完全感到困惑。怎么会这样有人可以给我一些建议吗?
答案 0 :(得分:1)
可能是您在活动中使用屏幕方向。但是另一个活动将是轮换。在下面的示例中,ActivityA的方向不会改变,但ActivityB会旋转。如果您在应用代码中编写了android:screenOrientation =“ portrait”,但未在活动中提及任何内容。它没有任何作用。因此,请在活动中提及screenOrientation。
<activity
android:name=".ActivityA"
android:screenOrientation="portrait">
</activity>
<activity
android:name=".ActivityB">
</activity>
答案 1 :(得分:0)
您正在使用android:screenOrientation="portrait"
android:configChanges="orientation|screenSize|keyboardHidden"
在您的应用程序内部或处于活动状态