情况如下:
我有一个简单的 Activity,它会在方向更改期间更改其内容。
我希望能够强制相反的方向(横向->纵向,纵向->横向),以响应某些按钮单击,然后仍然处理方向更改。
我将尝试用一个具体的例子来解释自己(我希望完成) -
假设设备处于纵向模式 -> 因此活动以纵向模式开始。
现在用户单击某个按钮,这会迫使活动处于横向模式。
现在用户将设备旋转到横向模式,但活动不应发生任何事情,因为活动已被迫处于横向模式。
现在用户将设备旋转回纵向模式,并且活动再次进入纵向模式。
所以,这就是我强制定位的方式:
public void onButtonClick()
{
if (mLastOrientation == Configuration.ORIENTATION_LANDSCAPE)
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
}
else
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
}
}
这是方向更改处理:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
int currentOrientation = newConfig.orientation;
//
// Some UI changes according to orientation .............
//
mLastOrientation = currentOrientation;
// Here's where I'm allowing device orientation changes again
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
问题是,当我调用 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) 时,活动正在更改回当前设备方向 - 这导致强制方向无法正常工作。
知道如何解决这个问题吗?
提前致谢!