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

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

时间:2020-01-02 18:53:51

相关推荐

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

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

试了好多网上的方法,发现都是扯淡。

后来意识到,webView 有缓存存在着缓存模式,怎么用不同的缓存模式呢?

//设置缓存模式

webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);

需要把模式改成LOAD_NO_CACHE!! 但是每次都得重新请求很费资源,于是可以放在onKeyDown()里重新写一个LOAD_NO_CACHE,只在返回时调用无缓存模式

这样就可以在返回前一个页面的时候不刷新出现闪白了 代码:

privatevoidinitView(){webview=(WebView)findViewById(R.id.faq_wv);webview.loadUrl(url);webview.setWebViewClient(newWebViewClient(){@OverridepublicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){view.loadUrl(url);returntrue;}});WebSettingssettings=webview.getSettings();settings.setJavaScriptEnabled(true);settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);}/*改写物理按键返回的逻辑*/@OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){if(keyCode==KeyEvent.KEYCODE_BACK&&webview.canGoBack()){//返回上一页面webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);webview.goBack();returntrue;}returnsuper.onKeyDown(keyCode,event);}

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