2011-03-14 4 views
16

これは直接的な問題よりも視覚的なものですが、アプリケーションでWebViewが読み込まれると、コンテンツが完全に読み込まれるまで2〜4秒間画面が空白になります。時間は読み込み中のコンテンツのサイズに依存します。Android Webviewの空白の読み込み画面を管理するにはどうすればよいですか?

これを管理する方法はありますか?その場合、画面は読み込まれたときにコンテンツにのみ更新されますか? 「読み込み中...」アニメーションやそれに類するもののようなもの?私はただの白い画面を自分のユーザに提示したくない。

私はWebViewを読み込むスプラッシュ画面を持っています。 WebViewは最初の空白の一時停止(読み込み中)の後でうまく動作しますが、ページがロードされるまで、または進行状況ローダが付いた黒い画面が表示されるまで、特定の画面に保持したいと思います。

おそらく負荷を検出するものはありますか?それが事実なら、私はそれをトリガとして使うことができます。

誰もこの空白の画面を管理する方法を知っていますか?

ありがとうございます!

/R

答えて

0

たぶん、あなたは、この前の問題を見てみることができます。

How to listen for a WebView finishing loading a URL?

+0

おかげで、このコードを置きます。私は間違ったキーワードで検索していました! – Robbe

+0

場合によっては、ページが完全にレンダリングされなくてもonPageFinishedが呼び出されるため、webviewで空白の画面が表示されることがあります。進行状況ダイアログを表示するには、ページが完全にレンダリングされるまで、onLoadResourceを使用してページの進行状況を確認する必要があります。この回答を確認するhttp://stackoverflow.com/a/31537328/1066839 – John

21

あなたは、代わりのWebViewを透明にすることができます:

webview.setBackgroundColor(0x00000000); 
+0

これは私のためにそれを修正したジャムです。 –

+0

XMLに 'android:background =" @ android:color/transparent "を追加しても効果はありません。 'webView.setBackgroundColor(Color.TRANSPARENT)'はそうです。 –

2

これに対する答えはない良い答えがないということです。あなたが望むものは、あなたが述べたように、webviewは新しいコンテンツがロードされるまで現在のコンテンツを表示するということです。通常のブラウザと同じです。それはしません。

アニメーションの読み込みを表示できますが、ユーザーエクスペリエンスはまだまだです。フルスクリーンタイプのアニメーションを作成すると、ユーザーは点滅している画面で悩まされます。トップ/ボトムにブラウザタイプの進捗状況を作成した場合でも、まだほとんどのページが白であるために奇妙に見えます。完璧なスタート -

8

だけのonCreate

   ProgressDialog _dialog ;     
       my_web_view.setWebViewClient(new WebViewClient(){ 


     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     // TODO Auto-generated method stub 
     _dialog =ProgressDialog.show(Store_locator.this, "", "Please wait..."); 
     super.onPageStarted(view, url, favicon); 
     } 
     @Override 
     public void onPageFinished(WebView view, String url) { 
     // TODO Auto-generated method stub 
     super.onPageFinished(view, url); 
     _dialog.dismiss(); 
     } 

     @Override 
     public void onReceivedError(WebView view, int errorCode, 
     String description, String failingUrl) { 
     // TODO Auto-generated method stub 
     super.onReceivedError(view, errorCode, description, failingUrl); 
     try{ 
     _dialog.dismiss(); 
     }catch (Exception e) { 
     // TODO: handle exception 
     } 
     } 

     }); 
関連する問題