最近,我将以下进度对话框添加到我的Android webview应用程序中。它工作得很好,但现在我想在一段时间内显示对话框,让我们说这个例子直到页面加载89%。
final Activity activity = this;
final ProgressDialog progressDialog = new ProgressDialog(activity);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setCancelable(false);
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
progressDialog.show();
progressDialog.setProgress(0);
activity.setProgress(progress * 1000);
progressDialog.incrementProgressBy(progress);
if(progress == 100 && progressDialog.isShowing())
progressDialog.dismiss();
}
});
我试图通过将代码的最后部分更改为:
来实现此目的if(progress == 89 && progressDialog.isShowing())
progressDialog.dismiss();
问题是当对话框达到89%时就会消失,就像我想要的那样,然后重新启动并加载到100%而不会消失。
我在这里缺少什么?
答案 0 :(得分:1)
我还没有运行你的代码,但是,这就是我所期待的:
在加载89%后也会调用public void onProgressChanged(WebView视图,int progress){
。
为了获得它,你可以先改变:
if(progress == 89
为:
if(progress> = 89
它应该可以正常工作,但它不会优雅,因为你的代码从一开始并不是很优雅(在进度条上显示的每一个进度变化。要使它正确显示一次,不在onProgressChanged方法。