2011-09-22 4 views
0

Après la mise en œuvre du Tabs Widget Sample j'ai essayé de jouer avec et ajouter le troisième onglet après avoir changé à la deuxième ongletonglets MonoDroid voir

protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 

     // Set our view from the "main" layout resource 
     SetContentView(Resource.Layout.Main); 

     TabHost.TabSpec spec; 

     spec = TabHost.NewTabSpec("tab_test1").SetIndicator("TAB 1").SetContent(Resource.Id.textview1); 
     TabHost.AddTab(spec); 

     spec = TabHost.NewTabSpec("tab_test2").SetIndicator("TAB 2").SetContent(Resource.Id.textview2); 
     TabHost.AddTab(spec); 

     //spec = TabHost.NewTabSpec("tab_test3").SetIndicator("TAB 3").SetContent(Resource.Id.widget0); 
     //TabHost.AddTab(spec); 

     TabHost.TabChanged += new EventHandler<Android.Widget.TabHost.TabChangeEventArgs>(TabHost_TabChanged); 

     TabHost.CurrentTab = 0; 
    } 

    void TabHost_TabChanged(object sender, TabHost.TabChangeEventArgs e) 
    { 
     if (TabHost.TabWidget.TabCount < 3) 
     { 
      TabHost.TabSpec spec; 

      spec = TabHost.NewTabSpec("tab_test3").SetIndicator("TAB 3").SetContent(Resource.Id.widget0); 
      TabHost.AddTab(spec); 
     } 
    } 

Le problème est que je vois la 3e vue-ed superposition sur la première avant de cliquer sur les onglets, même si le 3ème onglet n'apparaît qu'après avoir cliqué sur le 2ème onglet. Que se passe-t-il?

Répondre

2

Je suppose que c'est parce que le troisième onglet n'a pas d'onglet pour aller (puisque nous ne créons pas un TabSpec) donc il affiche juste directement sur l'écran.

Vous pouvez définir le contenu que vous souhaitez afficher lorsque le troisième onglet est visible à invisible montré dans l'exemple ci-dessous;

<TextView 
    android:visibility="invisible" 
    android:id="@+id/textview3" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:text="this is a third tab" /> 

puis lorsque l'onglet est affiché, la vue de texte redevient visible.

Hope this helps,

ChrisNTR

+0

Oui, qui a fait le travail. Merci Chris. – Shy