web-dev-qa-db-ja.com

Android Webviewの空白の白いロード画面を管理する方法は?

これは直接的な問題というよりは視覚的な問題ですが、WebViewがアプリケーションに読み込まれると、コンテンツが完全に読み込まれるまで2〜4秒間画面が真っ白になります。時間は、読み込まれるコンテンツのサイズによって異なります。

これを管理して、ロードされたときにのみ画面がコンテンツに更新されるようにする方法はありますか? 「読み込み中...」アニメーションなどのようなものですか?真っ白な画面をユーザーに表示したくないだけです。

次にWebViewをロードするスプラッシュ画面があります。 WebViewは、最初の空白の一時停止後(読み込み中)は正常に機能しますが、ページが読み込まれるか、進行状況ローダーが表示されるまで、特定の画面でWebViewを保持したいと思います。

おそらくロードの完了を検出するものはありますか?もしそうなら、私はそれをトリガーとして使うことができます。

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

ありがとう!

/ r

18
Robbe

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

RLのロードが終了するWebViewをリッスンする方法は?

0
papachan

または、Webビューを透明にすることもできます。

webview.setBackgroundColor(0x00000000); 
27

このコードを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
        }
       }

      });
8
sidhanshu

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

読み込み中のアニメーションを表示することはできますが、それでもユーザーエクスペリエンスは良くありません。フルスクリーンタイプのアニメーションを作成すると、ユーザーは画面の点滅に悩まされます。上部/下部でブラウザタイプの進行を行うと、ページの大部分がまだ白であるため、奇妙に見えます。

2

空白の白い画面を管理するには、レイアウトxmlに適切な背景色(白ではない)を設定し、レイアウトxmlファイルでWebビューの可視性をなくし、それにWebviewclientを追加します。URLのロードがWebビューの可視性を可視に設定しました。


            public void onPageFinished(WebView view, String url) {
                // do your stuff here
                webView.setVisibility(View.VISIBLE);
            }
        });
0
Sirsha Banerjee

webView.setBackgroundColor(Color.TRANSPARENT)は、webviewの白い画面を削除します

0
sonia