我正在开发一个在屏幕上有 2 个片段的平板电脑应用程序。一个片段是 WebView。默认情况下,用户不会收到任何反馈来让他们知道网页正在加载。
为了给用户反馈,我在页面加载开始时显示一个进度对话框,并在页面完成后将其删除。这在大多数情况下都很有效,除非链接重定向多次。
当发生重定向时,对话会多次显示和关闭,这看起来很糟糕。我想如果我可以阻止对话使背景变暗是可以接受的,但是在搜索了一段时间后我还没有找到这样做的方法。
理想情况下,如果我可以在 webview 片段的中心添加一个加载栏并在完成时隐藏/关闭它,那就太好了。有任何想法吗?
private class InnerWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (dialog==null)
dialog = new ProgressDialog(getActivity());
dialog.setMessage("Loading...");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();
Log.d("WEBVIEW", "loading "+ url);
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
dialog.dismiss();
mUrl=url; // save final url so user can open in deafult browser
super.onPageFinished(view, url);
}
}