【问题标题】:How do I get a progress dialog to show up when any link is clicked in a Webview在 Web 视图中单击任何链接时如何显示进度对话框
【发布时间】:2012-01-25 06:50:58
【问题描述】:

我有一个带有一些按钮的标题,下面有一个 web 视图。我有一个工作进度对话框,用于显示页面最初打开的时间和单击按钮的时间。问题是当我单击 webview 内的任何链接时,不会显示进度对话框。有谁知道实现这一目标的最佳方法?我在下面包含了我的 WebViewClient 和其中一个按钮的代码。

mWebView.setWebViewClient(new WebViewClient() {
             @Override
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
                 view.loadUrl(url);
                 return true;
             }
             ProgressDialog dialog = ProgressDialog.show(myActivity.this, "","Loading...", true);
             public void onPageFinished(WebView view, String url) {
                 dialog.dismiss();
             }
        });
        final Button btnCategory = (Button) findViewById(R.id.btnCategory);
        btnCategory.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                mWebView.getSettings().setJavaScriptEnabled(true);
                mWebView.setWebViewClient(new WebViewClient(){
                     ProgressDialog dialog = ProgressDialog.show(myActivity.this, "","Loading...", true);
                     public void onPageFinished(WebView view, String url) {
                         dialog.dismiss();
                     }
                });
                mWebView.loadUrl("http://mywebsite.com/page");
            }
        });

【问题讨论】:

    标签: android webview progressdialog


    【解决方案1】:

    您可以切换进度条的可见性,而不是尝试显示对话框。 我自己没有尝试过,但它可能看起来像这样:

    <FrameLayout
        android:id="@+id/frameLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <WebView
            android:id="@+id/webView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
        <ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:visibility="invisible" >
        </ProgressBar>
    

    【讨论】:

    • 这是有道理的,但我想我遇到的问题是如何让我的应用程序识别已在 Webview 中单击链接并切换进度条。有没有办法让应用识别 webview 的 url 已更改?
    【解决方案2】:

    您可以使用 relativelayout 来包含 webview 和进度条(在 relativelayout 中居中)。

    【讨论】:

      猜你喜欢
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多