我有一个活动。这个活动可以在竖屏或横屏模式下工作。在横屏模式下,我加载一个新的布局来显示一个图表。 为了检测方向,我在清单文件中进行了如下设置:
android:screenOrientation="sensor" android:configChanges="orientation"
它的工作非常完美,因为当我翻转手机时,新布局就被加载了。但是,在横屏模式下,用户可以通过一个按钮(它是一个开关)来禁用/启用旋转。
我编写了以下代码:
public void onConfigurationChanged(Configuration pNewConfig) {
Log.v(DEBUG_TAG, "Current configuration changes");
if (pNewConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Log.v(DEBUG_TAG, "Screen orientation : LANDSCAPE");
if (pNewConfig.orientation != mCurrentOrientation) {
initTestLandscape();
mCurrentOrientation = pNewConfig.orientation;
}
} else {
Log.v(DEBUG_TAG, "Screen orientation : PORTRAIT");
if (!mIsLandscapeLocking
&& pNewConfig.orientation != mCurrentOrientation) {
initTestPortrait();
mCurrentOrientation = pNewConfig.orientation;
}
}
super.onConfigurationChanged(pNewConfig);
}
这段代码有效,但当用户处于横屏模式并将手机翻转到竖屏模式且锁定时,横屏布局会在竖屏模式下翻转,我不想要这样的效果!
我已经添加了
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
但是这段代码禁用了onConfigurationChanged方法,我无法检测用户是否再次翻转手机......
你能帮助我吗?