我有一个通过loadData()加载的Web视图,但是在呈现时,它总是在加载正确的数据之前先显示一秒钟的白页。
holder.webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
if(newProgress==100){
holder.webView.setVisibility(View.VISIBLE);
}
}
});
我已经试图使Web视图仅在完全加载后可见,但是没有运气。
有没有简单的方法可以摆脱这种情况?
答案 0 :(得分:0)
您可以隐藏它,直到完成加载为止,您可以按照以下说明听完它:
mWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
// show it
}
});
更多信息可以在this answer
中找到答案 1 :(得分:0)
就像您说的那样,页面完全加载后需要一些时间来处理数据。由于时间是可以预测的(200毫秒至1000毫秒),因此可以在页面加载后使用延迟,并在1秒或处理页面所需的最长时间后显示。
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
holder.webView.setVisibility(View.VISIBLE);
}
}, MAX_TIME_TAKEN_MILLIS);
请注意,为了在隐藏期间发挥作用,请使用VIEW.INVISIBLE
而不是VIEW.GONE