安卓处理屏幕旋转事件
最近在做一个套 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)
}
作用就是 横屏时自动隐藏状态栏, 竖屏时恢复显示状态栏