安卓处理屏幕旋转事件

最近在做一个套 WebView 的 App, 当点击页面上的全屏按钮时,App 总会崩溃。
找了些资料发现,原来是没有设置 android:configChanges 属性
在要监听屏幕旋转事件的 Activity 上加上这条属性就好了
android:configChanges="orientation|screenSize"
最后的 screenSize 是不必要的,不加会在屏幕旋转时重新走一遍 Activity 的生命周期,加上后屏幕旋转时就会只走 onConfigurationChanged 方法了
最后,贴下我的 onConfigurationChanged 方法代码

override fun onConfigurationChanged(newConfig: Configuration) {

        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            logger("切换横屏")
            window.setFlags(
                WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN
            )
        } else {
            logger("切换竖屏")
            window.clearFlags(
                WindowManager.LayoutParams.FLAG_FULLSCREEN
            )
        }
        super.onConfigurationChanged(newConfig)
    }

作用就是 横屏时自动隐藏状态栏, 竖屏时恢复显示状态栏

posted @ 2021-08-14 19:03  博麗靈夢  阅读(201)  评论(0编辑  收藏  举报