问题是:重写了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()返回上一页自动刷新闪白的情况所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)