Activity不重建
在Android中,如果希望WebView页面在设备旋转时不销毁并重新加载,可以通过以下步骤实现:
在AndroidManifest.xml文件中,对应的Activity中添加如下配置:
1 | android:configChanges="orientation|screenSize" |
这将告诉系统在设备旋转或屏幕尺寸改变时不重新创建Activity。
android:configChanges
属性用于指定在哪些配置发生变化时,Activity不会被销毁和重新创建。
常见的配置变化包括:
orientation
:设备的方向变化,即横向或纵向。screenSize
:屏幕尺寸的变化,例如平板模式和手机模式之间的切换。keyboardHidden
:键盘的可见性变化,例如软键盘的显示或隐藏。locale
:语言设置的变化,例如用户切换了系统的语言。uiMode
:UI 模式的变化,例如夜间模式的切换。
你可以在android:configChanges
属性中使用这些值的组合,多个值之间使用竖线(|
)进行分隔。
例如,如果希望Activity在设备旋转和屏幕尺寸变化时都不被销毁和重新创建,可以这样配置:
1 | android:configChanges="orientation|screenSize" |
这样,当设备的方向或屏幕尺寸发生变化时,Activity不会被销毁和重新创建,而是会调用onConfigurationChanged()
方法进行相应的处理。
事件处理
只有上面的配置就可以了,如果想在设备旋转的时候处理一些东西可以覆盖onConfigurationChanged()方法,以处理配置更改事件。
在该方法中,你可以选择不执行任何操作,或者手动调整布局等。
以下是一个示例:
1 | import android.content.res.Configuration; |
这样,当设备旋转时,WebView页面将不会被销毁和重新加载。
Kotlin中
1 | override fun onConfigurationChanged(newConfig: Configuration) { |