これは直接的な問題というよりは視覚的な問題ですが、WebViewがアプリケーションに読み込まれると、コンテンツが完全に読み込まれるまで2〜4秒間画面が真っ白になります。時間は、読み込まれるコンテンツのサイズによって異なります。
これを管理して、ロードされたときにのみ画面がコンテンツに更新されるようにする方法はありますか? 「読み込み中...」アニメーションなどのようなものですか?真っ白な画面をユーザーに表示したくないだけです。
次にWebViewをロードするスプラッシュ画面があります。 WebViewは、最初の空白の一時停止後(読み込み中)は正常に機能しますが、ページが読み込まれるか、進行状況ローダーが表示されるまで、特定の画面でWebViewを保持したいと思います。
おそらくロードの完了を検出するものはありますか?もしそうなら、私はそれをトリガーとして使うことができます。
この空白の白い画面を管理する方法を知っている人はいますか?
ありがとう!
/ r
たぶん、あなたはこの前の問題を見ることができます。
または、Webビューを透明にすることもできます。
webview.setBackgroundColor(0x00000000);
このコードを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
}
}
});
これに対する答えは、良い答えはないということです。あなたが言ったように、あなたが望むのは、新しいコンテンツがロードされるまで、ウェブビューが現在のコンテンツを表示することです...通常のブラウザと同じです。それはしません。
読み込み中のアニメーションを表示することはできますが、それでもユーザーエクスペリエンスは良くありません。フルスクリーンタイプのアニメーションを作成すると、ユーザーは画面の点滅に悩まされます。上部/下部でブラウザタイプの進行を行うと、ページの大部分がまだ白であるため、奇妙に見えます。
空白の白い画面を管理するには、レイアウトxmlに適切な背景色(白ではない)を設定し、レイアウトxmlファイルでWebビューの可視性をなくし、それにWebviewclientを追加します。URLのロードがWebビューの可視性を可視に設定しました。
public void onPageFinished(WebView view, String url) {
// do your stuff here
webView.setVisibility(View.VISIBLE);
}
});
webView.setBackgroundColor(Color.TRANSPARENT)は、webviewの白い画面を削除します