锁定屏幕方向(Android)

可能重复:
如何在Android中禁用方向更改?

我正在编写一个使用具有不同内容(活动)的选项卡的Android应用程序。 在其中一项活动中,我想将屏幕方向锁定为“横向”模式,但在其他活动中,我需要正常方向(根据传感器)。

我现在在做的是我打电话

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

当我切换到风景模式活动时,和

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

当我切换回其他活动。 但是,这似乎不起作用,整个应用程序锁定。 这个问题的正常方法是什么?


在清单中,您可以将screenOrientation设置为横向。 它在XML中看起来像这样:

<activity android:name="MyActivity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation|screenSize">
...
</activity>

MyActivity是你想要保持风景的那个。

android:configChanges=...行禁止在屏幕旋转时调用onResume()onPause() 。 如果没有这一行,轮换将按照您的要求保持不变,但仍会进行调用。

注意:<Android 3.2(API级别13)需要keyboardHiddenorientation ,并且所有三个选项都需要3.2或更高版本,而不仅仅是orientation


我有类似的问题。

当我进入

<activity android:name="MyActivity" android:screenOrientation="landscape"></activity>

在清单文件中,这导致该活动在横向上显示。 然而,当我回到之前的活动中时,即使他们被设置为肖像,他们也会在lanscape中显示。 但是加入

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

紧随目标活动的OnCreate部分解决问题后。 所以我现在使用这两种方法。


在项目的Android清单文件中,找到您想要修复方向的活动声明并添加以下代码片段,

android:screenOrientation="landscape"

为横向和纵向添加以下代码,

android:screenOrientation="portrait"
链接地址: http://www.djcxy.com/p/88715.html

上一篇: Lock screen orientation (Android)

下一篇: How can I get the current screen orientation?