Android 8.1横屏界面与竖屏界面跳转产生屏幕旋转的问题

问题:从A(PORTRAIT)打开B(LANDSCAPE),然后,又从A finish到B。 A会执行两次重载。切换两次屏幕(竖,横,竖)。

原因:从B返回时,系统仍然调用B的横屏状态,此时A会显示为B界面退出时的状态,即横屏状态,由于A界面设置为PORTRAIT,所以之后A会由竖屏切换为横屏在切换为竖屏。

1.在配置文件AndroidManifest.xml中添加如下代码:

        <activity
            android:name="AActivity"
            android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
            android:screenOrientation="portrait" />
        <activity
            android:name="BActivity"
            android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
            android:screenOrientation="portrait" />

2.在BActivity中的onDestroy()中添加如下代码:

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //解决切换到上个界面后,横竖屏多次切换的问题
        if (android.os.Build.VERSION.SDK_INT >= 27) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章