即使方向设置为纵向,屏幕仍然可以旋转
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了即使方向设置为纵向,屏幕仍然可以旋转相关的知识,希望对你有一定的参考价值。
我知道瓷砖似乎很混乱,但是,它发生在我的应用程序中。好的,这是故事。
这是Manifest中的关键设置:
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
的输出给了我当前的风景定位!
所以,我完全糊涂了。怎么会发生这种情况?有人可以给我一些建议吗?
可能是您在活动中使用屏幕方向。但另一项活动将是轮换。在下面的示例中,ActivityA的方向不会改变,但ActivityB将会旋转。如果你在app标签中写android:screenOrientation =“portrait”而不提及活动中的任何内容。它什么都不起作用。所以请在活动中提及screenOrientation。
<activity
android:name=".ActivityA"
android:screenOrientation="portrait">
</activity>
<activity
android:name=".ActivityB">
</activity>
你在用android:screenOrientation="portrait"
android:configChanges="orientation|screenSize|keyboardHidden"
吗?
在您的应用程序内或活动中
以上是关于即使方向设置为纵向,屏幕仍然可以旋转的主要内容,如果未能解决你的问题,请参考以下文章