我的方案最初是我正在加载WebView,稍后我正在使用不同的URL加载相同的WebView。
我的问题是每当我加载下一个URL时,我可以看到先前加载的URL内容,然后显示我当前加载的URL内容。
我想在加载不同的网址时清除内容。
说,
if (pos == 0) {
mweb.clearCache(true);
mweb.clearHistory();
mweb.loadUrl("http://stackoverflow.com/");
}
else if (pos == 1) {
mweb.clearCache(true);
mweb.clearHistory();
mweb.loadUrl("http://android.stackexchange.com/");
}
clearCache()
和clearHistory()
都不适合我。
答案 0 :(得分:45)
在加载新网址之前使用mweb.clearView();
。
修改强>
clearView()在API级别18中已弃用。使用WebView.loadUrl("about:blank")
可靠地重置视图状态并释放页面资源(包括任何正在运行的JavaScript)。
解决@Liang提出的问题:
要获得一致的后退导航,您可以覆盖“onPageFinished”,并在其中检查网址是否包含“about:blank”。如果是,请使用“webview.goBack()”
答案 1 :(得分:2)
我通常在加载新网址之前隐藏网页视图,然后在加载进度稍微提高时再次显示它。
// url loading
mWebView.setVisibility(View.INVISIBLE);
mWebView.loadUrl(newUrl);
// show webview again
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int progress) {
if (progress >= 10) {
mWebView.setVisibility(View.VISIBLE);
}
}
}
答案 2 :(得分:2)
我猜你可以使用<div class="row-fluid-wrapper row-depth-1 row-number-3 ">
<div class="row-fluid ">
<div class="span4 widget-span widget-type-custom_widget ">
<div class="cell-wrapper layout-widget-wrapper">
<div class="clearfix cta-wrapper">
<div class="cta-text">
<p>Col 1</p>
<p>Text.</p>
</div>
</div>
</div>
</div>
<div class="span4 widget-span widget-type-custom_widget">
<div class="cell-wrapper layout-widget-wrapper">
<div class="clearfix cta-wrapper">
<div class="cta-text">
<p>Col 2</p>
<p>Text.</p>
</div>
</div>
</div>
</div>
<div class="span4 widget-span widget-type-custom_widget">
<div class="cell-wrapper layout-widget-wrapper">
<div class="clearfix cta-wrapper">
<div class="cta-text">
<p>Col 3</p>
<p>Text</p>
</div>
</div>
</div>
</div>
</div>
</div>
。但是记得在加载WebView之后调用它是如此无能为力。例如代码:
<enabled>false</enabled>
将无效,因为未加载webView。我们必须清除它:
<repositories>
<repository>
<id>s3-snapshot</id>
<url>s3://my_url/snapshot</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
答案 3 :(得分:1)
Thnx对StefanK的评论发现Here,您需要在clearHistory()
WebViewClient
方法完成加载页面时使用onPageFinished(WebView view, String url)
方法onLoadResource(WebView view, String url)
}} 方法;如下:
myCoolWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
@Override
public void onLoadResource(WebView view, String url) {
// Notice Here.
view.clearHistory();
super.onLoadResource(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
// And Here.
view.clearHistory();
super.onPageFinished(view,url);
}
});
您也可以查看canGoBack()
和copyBackForwardList()
进行操作。
答案 4 :(得分:0)
似乎将webview的图层类型设置为“软件”可以解决此问题。 以前的内容可能是由于图形缓存引起的。
答案 5 :(得分:0)
为空白页创建带有HTML的字符串,并将其加载到webview中。或者隐藏它,直到加载为止。
答案 6 :(得分:-4)
在loadData [Kuldip Bairagi]之前使用以下语句
view.loadUrl( “JavaScript的:document.open(); document.close();”);