【问题标题】:Progress Dialog not dismissed after loading a page加载页面后进度对话框未关闭
【发布时间】:2013-11-24 09:08:36
【问题描述】:

我已经使用进度条来指示页面正在加载到 android webview 中。但是,即使在页面完全加载后,进度条也会永远显示。我使用 logcat 进行调试,显示调用了 onPageFinished 函数。

     @Override
   public void onPageStarted(WebView view, String url, Bitmap favicon) {
    // TODO Auto-generated method stub
    _dialog =ProgressDialog.show(UmlScreen.this, "", "Please wait...");
    super.onPageStarted(view, url, favicon);
    _dialog.setCanceledOnTouchOutside(true);
    Log.d("LOGCAT", "started");
   }
   @Override
   public void onPageFinished(WebView view, String url) {
    // TODO Auto-generated method stub
    super.onPageFinished(view, url);
    if (_dialog != null || _dialog.isShowing()) {
            _dialog.dismiss();
            Log.d("LOGCAT", "finished");
        }

   }

【问题讨论】:

标签: android webview android-progressbar


【解决方案1】:
@Override
    public void onPageFinished(WebView view, String url) {

        try{
                if (prDialog.isShowing()|| prDialog!= null) {
                    prDialog.dismiss();
                    prDialog= null; /*** Add ***/
                }

                }catch(Exception exception){
                    exception.printStackTrace();
                }

        }
    }

或访问... https://stackoverflow.com/a/31981161/3857542

【讨论】:

    【解决方案2】:

    我可以给你一些虚拟代码。

    webview.load(url);
    dialog.show();
    
     public void onPageFinished(WebView view, String url) {
        //....
        dialog.dismiss();
     }
    

    【讨论】:

      【解决方案3】:

      因为页面没有完成。可能是页面有很多图片,所以下载它们需要时间。 您可以使用断点检查它。调试你的代码并将断点放在super.onPageFinished(view, url);

      【讨论】:

      • 他已经提到“我使用 logcat 进行调试,显示调用了 onPageFinished 函数。”
      【解决方案4】:

      尝试在 WebViewClient 之外初始化 _dialog,例如在 OnCreateView 方法中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-04
        相关资源
        最近更新 更多