前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android中页面旋转不销毁Webview(不重建Activity)

Android中页面旋转不销毁Webview(不重建Activity)

作者头像
码客说
发布2024-04-13 09:28:02
990
发布2024-04-13 09:28:02
举报
文章被收录于专栏:码客码客

Activity不重建

在Android中,如果希望WebView页面在设备旋转时不销毁并重新加载,可以通过以下步骤实现:

在AndroidManifest.xml文件中,对应的Activity中添加如下配置:

代码语言:javascript
复制
android:configChanges="orientation|screenSize"

这将告诉系统在设备旋转或屏幕尺寸改变时不重新创建Activity。

android:configChanges属性用于指定在哪些配置发生变化时,Activity不会被销毁和重新创建。

常见的配置变化包括:

  • orientation:设备的方向变化,即横向或纵向。
  • screenSize:屏幕尺寸的变化,例如平板模式和手机模式之间的切换。
  • keyboardHidden:键盘的可见性变化,例如软键盘的显示或隐藏。
  • locale:语言设置的变化,例如用户切换了系统的语言。
  • uiMode:UI 模式的变化,例如夜间模式的切换。

你可以在android:configChanges属性中使用这些值的组合,多个值之间使用竖线(|)进行分隔。

例如,如果希望Activity在设备旋转和屏幕尺寸变化时都不被销毁和重新创建,可以这样配置:

代码语言:javascript
复制
android:configChanges="orientation|screenSize"

这样,当设备的方向或屏幕尺寸发生变化时,Activity不会被销毁和重新创建,而是会调用onConfigurationChanged()方法进行相应的处理。

事件处理

只有上面的配置就可以了,如果想在设备旋转的时候处理一些东西可以覆盖onConfigurationChanged()方法,以处理配置更改事件。

在该方法中,你可以选择不执行任何操作,或者手动调整布局等。

以下是一个示例:

代码语言:javascript
复制
import android.content.res.Configuration;
import android.os.Bundle;
import android.webkit.WebView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl("https://example.com");
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // 如果不想做任何事情,可以不在这个方法里面写任何代码
        // 如果需要,可以在这里重新布局或者做其他的调整
    }
}

这样,当设备旋转时,WebView页面将不会被销毁和重新加载。

Kotlin中

代码语言:javascript
复制
override fun onConfigurationChanged(newConfig: Configuration) {
    super.onConfigurationChanged(newConfig)
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Activity不重建
  • 事件处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档