【发布时间】:2012-09-24 14:22:31
【问题描述】:
我想知道如何在我的 android 应用中针对某些活动完全关闭方向传感器。
这就是我要解决的问题。假设我使用以下命令在活动的 onCreate(或 onStart/onResume)方法中动态设置方向。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
我的经验是,如果我以一种根据方向传感器会导致横向模式的方式握住设备,屏幕上的显示速度会明显加快。
所以感觉就像活动首先要按照传感器建议的方向设置布局,然后根据 setRequestedOrientation 方法进行切换。我什至有时会在屏幕上看到这一点,如相关帖子 android - unexpected brief orientation change at switch of activity 中所述。
似乎我在调用 setRequestedOrientation 时为时已晚。所以我想知道如何完全关闭方向传感器以避免在 setRequestedOrientation 调用之前设置方向。或者作为替代方案,如何及时调用 setRequestedOrientation。由于我需要在运行时动态确定此功能(首选项设置),因此我无法在清单中设置固定的方向。
非常感谢您提供有关此问题的任何提示。
马丁
编辑: 我忘了说,清单包含
android:configChanges="keyboardHidden|orientation|screenSize"
【问题讨论】:
-
你试过
android:screenOrientation清单属性吗?也请查看stackoverflow.com/a/4675801/1321873 -
感谢 Hauleth 的反馈。正如我的问题结尾所提到的:由于我需要在运行时动态决定此功能(首选项设置),因此我无法在清单中设置固定的方向。
标签: android user-interface android-orientation