【问题标题】:Unable to dismiss Progress dialog after loading a page in Webview在 Webview 中加载页面后无法关闭进度对话框
【发布时间】:2018-03-20 04:48:29
【问题描述】:

当我将此ProgressDialog 添加到我的Webview 应用程序时,任何人都可以帮助我,它工作正常,但是当页面加载时,progress dialog 不会被关闭,任何人都可以帮助我我在Fragment 中使用此代码

public static ProgressDialog progressDialog;

     mWebView.setWebViewClient(new WebViewClient() {
                @Override
                public void onPageStarted(WebView view, String url, Bitmap favicon) {
                    super.onPageStarted(view, url, favicon);
                    swipeRefreshLayout.setRefreshing(true);
                    progressDialog.show(getActivity(), "Loading...", "Please wait YouTube is Loading...");

                    super.onPageStarted(view, url, favicon);

                }


                public void onPageFinished(WebView view, String url) {
                    swipeRefreshLayout.setRefreshing(false);
                    getActivity().setTitle(view.getTitle());
                    if(progressDialog!=null && progressDialog.isShowing()) {
                        progressDialog.dismiss();
                    }
                    super.onPageFinished(view, url);

                }
            });

感谢所有帮助我的人,现在对我有用的编辑代码

public static ProgressDialog progressDialog;

//Under onCreate View
progressDialog = ProgressDialog.show(getActivity(), "Loading...", "Please wait YouTube is Loading...");

mWebView.setWebViewClient(new WebViewClient() {

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                swipeRefreshLayout.setRefreshing(true);
                super.onPageStarted(view, url, favicon);

            }


            public void onPageFinished(WebView view, String url) {
                swipeRefreshLayout.setRefreshing(false);
                getActivity().setTitle(view.getTitle());
                if(progressDialog!=null && progressDialog.isShowing()) {
                    progressDialog.dismiss();
                    progressDialog.hide();
                }
                super.onPageFinished(view, url);

            }
        });

【问题讨论】:

  • @Suman Dey 你能贴出你的完整代码吗??
  • @Jeeva 抱歉,我无法发布完整的代码行,因为代码大约有 1000 行,并且有一些我无法分享的严重代码

标签: android webview progressdialog


【解决方案1】:

确保if(progressDialog!=null && progressDialog.isShowing()) 这个条件返回真。在此处设置一个断点并确保它们都是正确的。

试试

 progressDialog.hide() 

【讨论】:

  • 如何做到这一点,你能用更多的细节和代码解释吗??
  • 感谢您对其工作的帮助我使用此代码并且工作正常
【解决方案2】:

将下面的行移出onPageStarted() 方法,因为它将为每个底层URL 调用,并且除非每个cssjs 文件都被加载,否则它将继续显示

progressDialog.show(getActivity(), "Loading...", "Please wait YouTube is Loading...");

【讨论】:

  • 仍然没有关闭它仍然显示对话框
【解决方案3】:

你能试试这个代码吗

progressDialog = ProgressDialog.show(getActivity(), "Loading...", "Please wait YouTube is Loading...");

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多