解决webview调用goBack()返回上一页自动刷新闪白的情况

发布时间 - 2026-01-11 00:09:29    点击率:

问题是:重写了onKeyDown()方法使其goBack(),但是遇到的问题是,每次进入webview再次返回原始页面的时候,中间会有一个闪白的出现。

试了好多网上的方法,发现都是扯淡。

后来意识到,webView 有缓存存在着缓存模式,怎么用不同的缓存模式呢?

//设置缓存模式
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); 

需要把模式改成LOAD_NO_CACHE!!

但是每次都得重新请求很费资源,于是可以放在onKeyDown()里重新写一个LOAD_NO_CACHE,只在返回时调用无缓存模式

这样就可以在返回前一个页面的时候不刷新出现闪白了

代码:

private void initView() { 
 webview = (WebView) findViewById(R.id.faq_wv); 
 webview.loadUrl(url); 
 webview.setWebViewClient(new WebViewClient() { 
 @Override 
 public boolean shouldOverrideUrlLoading(WebView view, String url) { 
  view.loadUrl(url); 
  return true; 
 } 
 }); 
 WebSettings settings = webview.getSettings(); 
 settings.setJavaScriptEnabled(true); 
 settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 
} 
/* 改写物理按键返回的逻辑 */ 
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
 if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack()) { 
 // 返回上一页面 
  webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
 webview.goBack(); 
 return true; 
 } 
 return super.onKeyDown(keyCode, event); 
} 

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# webview  # goback  # android WebView加载html5介绍  # Android中实现Webview顶部带进度条的方法  # android中webview控件和javascript交互实例  # iOS开发中WebView的基本使用方法简介  # Android开发之WebView组件的使用解析  # 解析Android中webview和js之间的交互  # android webview中使用Java调用JavaScript方法并获取返回值  # Android中Webview打开网页的同时发送HTTP头信息方法  # Android WebView使用方法详解 附js交互调用方法  # 在Android系统中使用WebViewClient处理跳转URL的方法  # 问题是  # 都是  # 会有  # 放在  # 上一  # 意识到  # 写了  # 使其  # 只在  # 都得  # 试了  # 就可以  # 网上  # WebSettings  # LOAD_DEFAULT  # setCacheMode  # getSettings  # LOAD_NO_CACHE  # onKeyDown  # private 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Win11怎么设置默认图片查看器_Windows11照片应用关联设置  Laravel怎么在Blade中安全地输出原始HTML内容  javascript中闭包概念与用法深入理解  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  如何在宝塔面板创建新站点?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  网站优化排名时,需要考虑哪些问题呢?  如何快速完成中国万网建站详细流程?  浅谈redis在项目中的应用  中国移动官方网站首页入口 中国移动官网网页登录  济南网站建设制作公司,室内设计网站一般都有哪些功能?  奇安信“盘古石”团队突破 iOS 26.1 提权  Laravel Fortify是什么,和Jetstream有什么关系  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  如何用低价快速搭建高质量网站?  b2c电商网站制作流程,b2c水平综合的电商平台?  什么是javascript作用域_全局和局部作用域有什么区别?  怎么用AI帮你为初创公司进行市场定位分析?  如何基于云服务器快速搭建个人网站?  Laravel如何使用Livewire构建动态组件?(入门代码)  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  EditPlus 正则表达式 实战(3)  如何基于云服务器快速搭建网站及云盘系统?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  JavaScript如何实现类型判断_typeof和instanceof有什么区别  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  移动端脚本框架Hammer.js  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  在Oracle关闭情况下如何修改spfile的参数  如何在建站主机中优化服务器配置?  Laravel如何使用Blade模板引擎?(完整语法和示例)  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  如何用景安虚拟主机手机版绑定域名建站?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  Python制作简易注册登录系统  制作公司内部网站有哪些,内网如何建网站?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何在橙子建站中快速调整背景颜色?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  教学论文网站制作软件有哪些,写论文用什么软件 ?  如何确认建站备案号应放置的具体位置?  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  linux写shell需要注意的问题(必看)  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】