锁屏方向(Android)

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

我正在写一个使用不同内容(活动)的标签的Android应用程序。 在其中一个活动中,我想将屏幕方向locking为“风景”模式,但在其他活动中,我需要正常方向(根据传感器)。

我现在在做的是我打电话

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

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

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); 

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

在清单中,您可以将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> 

在清单文件中,这导致该活动在横向上显示。 然而,当我回到以前的活动,即使他们被设置为肖像,他们显示在景观。 但是join

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

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

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

 android:screenOrientation="landscape" 

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

 android:screenOrientation="portrait"