我的应用程序在纵向和横向模式下均可使用,因此我在所有活动的清单中都有此配置:
android:screenOrientation="sensor"
android:configChanges="orientation|keyboardHidden|screenSize"
但我也希望为用户提供在横向模式下锁定方向的选项。
我为所有活动在onCreate
方法中添加了以下行:
if (lockLandscape) setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
它有效,但是当我垂直拿着平板电脑时,新活动首先以纵向模式打开,然后片刻旋转到横向。旋转回力和力量看起来不太好...... 有没有办法来解决这个问题?也许以某种方式禁用传感器?
答案 0 :(得分:0)
我遇到了同样的问题,现在只需使用以下代码锁定方向,然后再显示新活动(然后在解除活动后解锁):
if (rotationEnabled)
{
setRequestedOrientation(mSavedOrientation);
}
else
{
mSavedOrientation = getRequestedOrientation();
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
}