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

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

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

问题是:重写了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()返回上一页自动刷新闪白的情况全部内容,希望文章能够帮你解决解决webview调用goBack()返回上一页自动刷新闪白的情况所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1146692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存