【发布时间】:2011-06-08 05:25:33
【问题描述】:
我正在编写一个使用具有不同内容(活动)的选项卡的 android 应用程序。 在其中一项活动中,我想将屏幕方向锁定为“横向”模式, 但在其他活动中,我想要正常的方向(根据传感器)。
我现在正在做的是我正在打电话
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
当我切换到横向模式活动时,
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
当我切换回其他活动时。但是,这似乎不起作用, 整个应用程序锁定。解决这个问题的正常方法是什么?
【问题讨论】:
-
“可能重复”链接不是与此问题重复的问题。这个问题是问如何锁定方向,使其不能从横向改变。链接的问题是询问如何在方向发生变化时防止应用程序重新启动。
-
这似乎是你想要的:从github.com/delight-im/Android-BaseLib/blob/master/Source/src/im/… 致电
Screen.lockOrientation(this)和后来的Screen.unlockOrientation(this) -
请注意,如果您使用的是内联 ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT,则在 4.3 以下是不允许的。然后您可以使用上述或 ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT
-
对于未来的读者,@caw 的方法在常规 Android 应用程序的上下文中不是可访问的方法。
-
@LoungeKatt 不,不是,但我确实链接到了实现,不是吗?无论如何,我只是看到该链接不再有效。这是
Screen.lockOrientation和Screen.unlockOrientation源的更新链接:github.com/delight-im/Android-Commons/blob/…
标签: android layout orientation