【发布时间】:2013-06-09 14:50:04
【问题描述】:
我的应用可以在纵向和横向模式下运行,因此我在清单中为所有活动提供了此配置:
android:screenOrientation="sensor"
android:configChanges="orientation|keyboardHidden|screenSize"
但我还想为用户提供一个选项以在横向模式下锁定方向。
我在所有活动的onCreate 方法中添加了以下行:
if (lockLandscape) setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
它可以工作,但是当我垂直握住平板电脑时,新活动首先以纵向模式打开,然后转为横向模式。旋转回来和力量看起来不是很好...... 有没有办法来解决这个问题?也许以某种方式禁用传感器?
【问题讨论】:
-
在
onConfigurationChanged()做,看看它是否有任何改变。 -
当我从 onCreate 中删除此代码时,活动只会以纵向模式打开(如果我垂直握住设备)。 onConfigurationChanged 没有被触发。
-
@dop2000:您已经有了将屏幕方向锁定为横向模式的代码,所以您已经完成了一半。只需将标签修改为
android:screenOrientation="nosensor"。请参阅here 了解更多信息。 Android API 18 还有一个名为android:screenOrientation="locked"的新标签,适用于只针对使用 API 18(又名 Android 4.3 主要版本 2)及更高版本的设备的开发人员。
标签: android android-activity orientation