您应该根据配置更改设置请求的方向
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else if...
}
如果您想同时支持纵向和反向纵向,请使用SCREEN_ORIENTATION_SENSOR_PORTRAIT
(更多信息)。另一个有用的链接。
编辑:
我没有看到当新配置是横向时您需要同时请求横向和纵向的情况,但是您可以尝试使用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT | ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);