In an Android app I am using a TabView and one of the tabs shows a WebView. But the page is blank until the web page loads. How would one show a progress bar until the page loads? It cannot be in the title bar because that is hidden by the tab host.
I use a ProgressBar for this. With a layout like this:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout [...]>
<WebView
android:id="@+id/WebView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ProgressBar
android:id="@+id/ProgressBar"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleLarge"
android:visibility="gone"/>
</RelativeLayout>
I hide and show the progress indicator using:
WebView webView = (WebView) findViewById(R.id.WebView);
final ProgressBar progess = (ProgressBar) findViewById(R.id.ProgressBar);
webView.setWebViewClient(new WebViewClient() {
public void onPageStarted(WebView view, String url, Bitmap favicon) {
progess.setVisibility(View.VISIBLE);
}
public void onPageFinished(WebView view, String url) {
progess.setVisibility(View.GONE);
}
}
There's a really good tutorial on the Android Developers website for that. It shows how to create the 'spinning wheel' progress dialog used throughout Android programs, and even some basics on how to handle loading in a separate thread to prevent your application from freezing while loading.
If your question is "how do I find out when the page is loaded?", then:
Create a custom subclass of WebViewClient, overriding onPageFinished()
Attach an instance of your WebViewClient subclass to your WebView via setWebViewClient()
Set up the indefinite progress indicator (bar, dialog, RotateAnimation, etc.)
progressDialog = ProgressDialog.show(this, "", getText(R.string.progressDialogText), true);
before calling loadUrl() on the WebView
Have onPageFinished() get rid of the progress indicator (progressDialog.dismiss())
© 2022 - 2024 — McMap. All rights reserved.
WebViewClient
to theWebView
and find out when the page is loaded, so you know when you can dismiss the dialog. – Precedency