6

Android アプリでは、TabView を使用しており、タブの 1 つに WebView が表示されます。ただし、Web ページが読み込まれるまで、ページは空白です。ページが読み込まれるまで、どのようにプログレス バーを表示しますか? タブホストによって隠されているため、タイトルバーには表示できません。

4

4 に答える 4

2

あなたの質問が「ページがいつ読み込まれたかを知るにはどうすればよいですか?」の場合:

onPageFinished() をオーバーライドして、WebViewClient のカスタム サブクラスを作成します。

setWebViewClient() を使用して、WebViewClient サブクラスのインスタンスを WebView にアタッチします。

無期限の進行状況インジケーター (バー、ダイアログ、RotateAnimation など) を設定します。

progressDialog = ProgressDialog.show(this, "", getText(R.string.progressDialogText), true);

WebView で loadUrl() を呼び出す前に

onPageFinished() で進行状況インジケーターを削除します (progressDialog.dismiss())

于 2010-09-02T09:39:43.113 に答える
2

Android Developers Web サイトには、そのための非常に優れたチュートリアルがあります。Android プログラム全体で使用される「糸車」の進行状況ダイアログを作成する方法と、ロード中にアプリケーションがフリーズするのを防ぐために別のスレッドでロードを処理する方法の基本を示します。

于 2010-03-22T22:39:47.807 に答える
1

ビューを初期化した後、このメソッドを呼び出すだけです

startWebView(web_view,"Your Url");ここで web_view は、初期化された WebView オブジェクトです。を以下startWebView()に示します。

    private void startWebView(WebView webView,String url) {
 webView.setWebViewClient(new WebViewClient() {
            ProgressDialog progressDialog;

            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return false;
            }

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

            public void onLoadResource (WebView view, String url) {

                    if (progressDialog == null) {
                        progressDialog = new ProgressDialog(SponceredDetailsActivity.this);
                        progressDialog.setMessage("Loading...");
                        progressDialog.show();
                    }

            }
            public void onPageFinished(WebView view, String url) {
                try{
                    if (progressDialog.isShowing()) {
                        progressDialog.dismiss();
                        progressDialog = null;
                    }

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

        });

        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl(url);
    }

URL が死んでいる場合、リダイレクトされ、onPageFinished メソッドの前に onLoadResource() に到達することがあります。このため、プログレス バーは消えません。この問題を解決するには、私のこの回答を参照してください。

ありがとう :)

于 2016-03-21T15:50:12.093 に答える