新活动打开时锁定方向并避免屏幕旋转

时间:2013-06-09 14:50:04

标签: android android-activity orientation

我的应用程序在纵向和横向模式下均可使用,因此我在所有活动的清单中都有此配置:

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

但我也希望为用户提供在横向模式下锁定方向的选项。 我为所有活动在onCreate方法中添加了以下行:

if (lockLandscape) setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

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

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,现在只需使用以下代码锁定方向,然后再显示新活动(然后在解除活动后解锁):

if (rotationEnabled)
{
    setRequestedOrientation(mSavedOrientation);
}
else
{
    mSavedOrientation = getRequestedOrientation();
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
}