我正在编写一个android应用程序,它使用具有不同内容(活动)的选项卡。在其中一个活动中,我希望将屏幕方向锁定为“横向”-mode,但在其他活动中,我想要正常方向(根据传感器)。
我现在要做的就是打电话给
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
当我切换到横向模式活动时,
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
当我切换回其他活动时。然而,这似乎不起作用,整个应用程序都锁定了。解决这个问题的正常方法是什么?
发布于 2011-01-13 09:03:42
在清单中,您可以将screenOrientation设置为横向。在XML中,它看起来像这样:
<activity android:name="MyActivity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation|screenSize">
...
</activity>
其中MyActivity
是你想要留在风景中的那个。
android:configChanges=...
行防止在屏幕旋转时调用onResume()
,onPause()
。如果没有此行,轮换将按您的请求进行,但仍会进行调用。
注意:keyboardHidden和orientation
,3.2或更高版本需要这三个选项,而不仅仅是orientation
。
发布于 2012-01-23 01:26:14
我也遇到过类似的问题。
当我进来的时候
<activity android:name="MyActivity" android:screenOrientation="landscape"></activity>
在清单文件中,这会导致该活动在横向显示。然而,当我返回到之前的活动时,它们显示在lanscape中,即使它们被设置为肖像。但是,通过添加
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
在目标活动的OnCreate部分之后,立即解决了问题。因此,我现在使用这两种方法。
发布于 2012-03-26 14:32:32
在项目的Android清单文件中,找到您想要修改其方向的活动声明,并添加以下代码。
android:screenOrientation="landscape"
对于横向和纵向,添加以下代码,
android:screenOrientation="portrait"
https://stackoverflow.com/questions/4675750
复制相似问题