我正在开发一个应用,其中一个活动有两种不同的Landscape
和Portrait
模式视图。处理方向一切正常,但问题是我想先显示Landscape
模式,然后用户可以稍后将方向更改为纵向,无论之前的活动是否处于Portrait
模式。
当我强行定义清单中landscape
的方向或通过调用 onCreate setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
时
然后方法 onConfigurationChanged
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
}
没有被召唤。
我也定义了
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
。
任何帮助都会很明显。
答案 0 :(得分:0)
使用活动代码中的OrientationEventListener尝试此替代选项:
private OrientationEventListener orientationEventListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
orientationEventListener = new OrientationEventListener(this, SensorManager.SENSOR_DELAY_NORMAL) {
@Override
public void onOrientationChanged(int orientation) {
// ....
}
};
if (orientationEventListener.canDetectOrientation()) {
orientationEventListener.enable();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
orientationEventListener.disable();
}