Как удалить вкладку из TabHost

В виджетах TabHost я могу создать новую вкладку с ее содержимым (Intent), используя TabHost.addTab (TabHost.TabSpec tabSpec) .

Мы можем удалить все вкладки, которые мы создали, вызвав clearAllTabs () , но я не могу понять, как удалить вкладку или просто заменить содержимое (Intent) внутри вкладки новым Intent.

Так что мне нужно что-то вроде removeTab(int index)

Solutions Collecting From Web of "Как удалить вкладку из TabHost"

Фактически, clearAllTabs делает это:

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

И метод removeAllViews происходит из класса ViewGroup . К счастью, у ViewGroup есть методы для удаления только одного вида:

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

Зная это, я бы рекомендовал подклассировать TabWidget и TabHost чтобы добавить TabHost поведение. Может быть, есть более простой способ, но это единственный, о котором я могу думать. Удачи

Намного легче:

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