1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > android webview goback 刷新 解决webview调用goBack()返回上一页自动刷新闪白的情况

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

时间:2024-06-18 08:14:36

相关推荐

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

问题是:重写了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);

}

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

总结

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。