2012-01-20 9 views
1

WebViewをLinearLayoutにロードしていて、WebViewが完全にロードされるまでこのレイアウト内にProgressBarを表示したいと思っています。本当に素晴らしいと私はProgressDialogを使用したくない代わりに、レイアウト内にプログレスバーを使用したいと思います。WebViewがロードされるまでレイアウトの進捗バーを表示する方法

http://xjaphx.wordpress.com/2011/07/31/load-webview-with-progressdialog/

how to show progress bar on webview?

私はそれをどのように行うのでしょうか? mLayoutインサイド

セイ例えば、

if(pos==0) 
{ 
mLayout.setVisibility(View.VISIBLE); 
mWeb.loadUrl("http://android.stackexchange.com/"); 
} 

私は、ページが表示されるまでプログレスバーを表示したいと思います。

答えて

2

あなたは、単にこのようにWebViewのsetPictureListener()を使用することができます。

// here you can start a loading wheel 

    webView.setPictureListener(new WebView.PictureListener() { 
     public void onNewPicture(WebView webView, Picture picture) { 
      // close your loading wheel here 
      } 
     }); 

    //load your url 
    webView.loadUrl(yourUrl); 
+0

+1。 PictureListenerは推奨されていませんが、これを正しく行うための方法はまだありません。 – josephus

5

は、WebViewの内部でプログレスバーを定義するには:

1.はこのようにレイアウト内ProgressBarWebviewを定義します。

<ProgressBar android:id="@+id/progressbar" 
     style="?android:attr/progressBarStyleHorizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="8px" 
     android:max="100" 
     android:visibility="gone" /> 

<ScrollView 
    android:id="@+id/ScrollView01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:fadingEdge="none" > 

<WebView 
    android:id="@+id/webkit" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 

</ScrollView> 

2. tivity:

progressBar = (ProgressBar)findViewById(R.id.progressbar); 

    progressBar.setProgress(0); 

    progressBar.setVisibility(View.VISIBLE); 

    WebView mWebView = (WebView)findViewById(R.id.webkit); 

    mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 

    mWebView.setWebChromeClient(new WebChromeClient(){ 

    public void onProgressChanged(WebView view, int progress) { 

     progressBar.setProgress(progress); 
     if(progress == 100) { 
      progressBar.setVisibility(View.GONE); 
      } 
     } 
    }); 
+0

@ VineetShukla-簡単に素晴らしい.. –

0

私は、これは、TIがページの読み込みが完了したことを検出し、より良い方法であると確信しています。

webView.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view, url); 
      loadingIndicator.setVisibility(View.GONE); 
     } 
    }); 
関連する問題