2010-07-21 26 views
14

Bir TabHost widget'ında, içeriğiyle (Intent) TabHost.addTab(TabHost.TabSpec tabSpec)'u kullanarak yeni bir sekme oluşturabilirim.TabHost'dan nasıl kaldırılır

clearAllTabs() numaralı telefonu arayarak oluşturduğumuz tüm sekmeleri kaldırabiliriz, ancak sekmenin nasıl kaldırılacağını veya yeni Intent ile sekmenin içindeki içeriğin (Niyet) nasıl değiştirileceğini anlayamıyorum.

public void clearAllTabs() { 
    mTabWidget.removeAllViews(); 
    initTabHost(); 
    mTabContent.removeAllViews(); 
    mTabSpecs.clear(); 
    requestLayout(); 
    invalidate(); 
} 

Ve yöntemi removeAllViews sınıfa ViewGroup geliyor:

yüzden Aslında removeTab(int index)

cevap

13

gibi bir şey ne gerek, clearAllTabs bunu yapmaz. , Sana ihtiyacım davranışı eklemek TabWidget ve TabHost alt sınıf öneriyoruz

  • removeView(View view)
  • removeViewAt(int index)
  • removeViewInLayout(View view)

bilerek: Neyse ki, ViewGroup tek görünümünü kaldırmak için yöntemler var mı . Belki daha kolay bir yol var ama düşünebildiğim tek şey bu. İyi şanslar

23

Kadar Kolay:

tabHost.getTabWidget().removeView(tabHost.getTabWidget().getChildTabViewAt(3)); 
+0

Bu şimdiye 4. –

+0

kutu sekmesi onun etiketi veya sekme tıklama geçerli dizin konumunu bulmak mümkün .. –

+0

akım indeksi ile kaldırmak olabilir bakıyordu tam olarak ne: tabHost.getCurrentTab() – 2red13