如果网址以特定字符串结尾,我将使用以下代码隐藏webview。
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
if (url.endsWith("index.asp")) {
Toast.makeText(getActivity().getApplicationContext(),"Login successfull",Toast.LENGTH_LONG).show();
webview.setVisibility(view.GONE);
}
}
});
但如果网址以index.asp结尾,则网页视图仍然存在(例如" http://abc.def/index.asp")
答案 0 :(得分:2)
而不是:
webview.setVisibility(view.GONE);
使用:
view.setVisibility(view.GONE);
答案 1 :(得分:0)
正如此处How to listen for a Webview finishing loading a URL in Android?所述,有时webview网址会重定向回调。这意味着onPageFinished()将调用several times(不止一次)。如果是这种情况,您应该检查重定向状态以及您在onPageFinished()
方法中的网址回拨
boolean loadingFinished = true;
boolean redirect = false;
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) {
if (!loadingFinished) {
redirect = true;
}
loadingFinished = false;
view.loadUrl(urlNewString);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap facIcon) {
loadingFinished = false;
//SHOW LOADING IF IT ISNT ALREADY VISIBLE
}
@Override
public void onPageFinished(WebView view, String url) {
if(!redirect){
loadingFinished = true;
}
if(loadingFinished && !redirect){
//HIDE LOADING IT HAS FINISHED
if (url.endsWith("index.asp")) {
webview.setVisibility(view.GONE);
}
} else{
redirect = false;
}
}
});
希望它会有所帮助
答案 2 :(得分:0)
如果您不想在视图上绘制内容,请尝试使用其他库。 对于instane,jsoup library。
答案 3 :(得分:0)
你可以通过清除动画检查你是否设置了任何因为我有同样的问题布局没有在setVisibility(View.Gone)上消失。试试这个
webview.clearAnimation();
它帮助了我。