解决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);?? }??
轉載于:https://www.cnblogs.com/ganchuanpu/p/6545838.html
總結
以上是生活随笔為你收集整理的解决webview调用 goBack() 返回上一页自动刷新闪白的情况的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: linux挂载新硬盘
- 下一篇: 图片序列化和反序列化成图片文件(代码)
