解决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【方案】

