2

我的应用程序可以在纵向和横向模式下运行,因此我在清单中为所有活动提供了以下配置:

android:screenOrientation="sensor"
android:configChanges="orientation|keyboardHidden|screenSize"

但我也想给用户一个选项以在横向模式下锁定方向。onCreate我在所有活动的方法中添加了以下行:

if (lockLandscape) setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

它可以工作,但是当我垂直握住平板电脑时,新活动首先以纵向模式打开,然后转为横向模式。旋转回来和力量看起来不是很好......有没有办法解决这个问题?也许以某种方式禁用传感器?

4

1 回答 1

1

我遇到了同样的问题,现在只需使用以下代码在显示新活动之前锁定方向(然后在取消该活动后将其解锁):

if (rotationEnabled)
{
    setRequestedOrientation(mSavedOrientation);
}
else
{
    mSavedOrientation = getRequestedOrientation();
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
}
于 2015-05-30T17:26:23.567 回答