如何让Android Webview应用程序的进度对话框在页面完全加载之前消失?

时间:2014-11-29 18:58:44

标签: android webview progressdialog progress

最近,我将以下进度对话框添加到我的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%而不会消失。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

我还没有运行你的代码,但是,这就是我所期待的:

  

public void onProgressChanged(WebView视图,int progress){

在加载89%后也会调用

为了获得它,你可以先改变:

  

if(progress == 89

为:

  

if(progress> = 89

它应该可以正常工作,但它不会优雅,因为你的代码从一开始并不是很优雅(在进度条上显示的每一个进度变化。要使它正确显示一次,不在onProgressChanged方法。