Reputation: 296
I am trying to build off the tutorial code below, I have two tabs each displays a webview inside with this code inside.
But the progress bar doesn't work show in the title bar anymore. It only works when I view the webviews separately, but not when I use tabhost and put the two together. I like the progress bar in the title and really want it to work.
I'm pretty new so any hints or tips are helpful.
package firsrdroid.tutorial.mywebview;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
public class UsingMyWebview extends Activity {
WebView mWebView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Adds Progrss bar Support
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main );
// Makes Progress bar Visible
getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);
// Get Web view
mWebView = (WebView) findViewById( R.id.MyWebview ); //This is the id you gave
//to the WebView in the main.xml
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setSupportZoom(true); //Zoom Control on web (You don't need this
//if ROM supports Multi-Touch
mWebView.getSettings().setBuiltInZoomControls(true); //Enable Multitouch if supported by ROM
// Load URL
mWebView.loadUrl("http://www.firstdroid.com/advertisement.htm");
// Sets the Chrome Client, and defines the onProgressChanged
// This makes the Progress bar be updated.
final Activity MyActivity = this;
mWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
//Make the bar disappear after URL is loaded, and changes string to Loading...
MyActivity.setTitle("Loading...");
MyActivity.setProgress(progress * 100); //Make the bar disappear after URL is loaded
// Return the app name after finish loading
if(progress == 100)
MyActivity.setTitle(R.string.app_name);
}
});
}//End of Method onCreate
}
Upvotes: 1
Views: 1618
Reputation: 8095
I've had similar issue before with Tab Views; they're a bit confusing at first but let me try to explain. If you're implementing the Tab View through another activity, in other words, you have an activity, call it WebBrowser, that contains the two tabs inside, the activity WebBrowser has control of the title/progress bar. Therefore the Tab Views, aka MyActivity, cannot control WebBrowser's title/progress bar directly through MyActivity.setTitle(). In fact, MyActivity, in this case, doesn't really have a visible title bar to access; it's all being surrounded by WebBrowser. In order to control it, you have to call it through WebBrowser. Let me know if I explained this clear enough!
Upvotes: 1