在横向模式下启动活动,它也可以旋转为纵向

时间:2014-09-02 10:34:58

标签: android screen-orientation landscape-portrait onconfigurationchanged

我正在开发一个应用,其中一个活动有两种不同的LandscapePortrait模式视图。处理方向一切正常,但问题是我想先显示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"
中的

任何帮助都会很明显。

1 个答案:

答案 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();
}