画面に 2 つのフラグメントがあるタブレット アプリケーションに取り組んでいます。1 つのフラグメントは WebView です。デフォルトでは、ユーザーは Web ページが読み込まれていることを知らせるフィードバックを受け取りません。
ユーザー フィードバックを提供するために、ページの読み込みが開始されたときに進行状況ダイアログを表示し、ページが終了したら削除します。これは、リンクが複数回リダイレクトされる場合を除いて、ほとんどの場合うまく機能します。
リダイレクトが発生すると、ダイアログが表示され、何度も閉じられ、かなり見栄えが悪くなります。ダイアログが背景を暗くするのを止めることができればそれでいいと思いますが、しばらく探した後、これを行う方法が見つかりませんでした.
理想的には、webview フラグメントの中央にローディング バーを追加し、終了時に非表示/非表示にすることができればいいと思います。何か案は?
private class InnerWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (dialog==null)
dialog = new ProgressDialog(getActivity());
dialog.setMessage("Loading...");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();
Log.d("WEBVIEW", "loading "+ url);
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
dialog.dismiss();
mUrl=url; // save final url so user can open in deafult browser
super.onPageFinished(view, url);
}
}