Colby
Colby

Reputation: 296

tabs and progress bar in title android

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.

Tutorial

   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

Answers (1)

Brian
Brian

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

Related Questions