1

我已经使用进度条来指示页面正在加载 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");
        }

   }
4

4 回答 4

3

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

于 2013-11-12T09:33:24.667 回答
0

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

webview.load(url);
dialog.show();

 public void onPageFinished(WebView view, String url) {
    //....
    dialog.dismiss();
 }
于 2013-11-12T09:35:59.803 回答
0

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

于 2013-11-12T09:34:10.920 回答
0
@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

于 2015-08-13T06:53:22.857 回答