设为首页 加入收藏

TOP

解决webview调用 goBack() 返回上一页自动刷新闪白的情况
2017-10-12 17:56:45 】 浏览:447
Tags:解决 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.setjava scriptEnabled(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);  
}  

  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Android 借助Stetho在Chrome上调.. 下一篇如何正确理解和使用 Activity的4..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目