【问题标题】:How to make a progress dialog for Android Webview app to disappear before page is fully loaded?如何在页面完全加载之前使 Android Webview 应用程序的进度对话框消失?
【发布时间】:2014-11-29 18:58:44
【问题描述】:

最近,我在我的 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% 之后不会消失。

我在这里错过了什么?

【问题讨论】:

    标签: android webview progressdialog progress


    【解决方案1】:

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

    public void onProgressChanged(WebView view, int progress) {

    在加载 89% 后也会调用。

    要驾驭它,你可以先改变:

    如果(进度 == 89

    到:

    如果(进度 >= 89

    它应该可以工作,但它不会很优雅,因为您的代码从一开始就不是很优雅(在每次进度更改中,您都会在进度条上显示。要使其正确地只显示一次而不是在onProgressChanged 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多