如何从TabHost中删除选项卡

时间:2010-07-21 13:41:10

标签: android android-widget

TabHost窗口小部件中,我可以使用TabHost.addTab(TabHost.TabSpec tabSpec)创建一个包含其内容(意图)的新标签页。

我们可以通过调用clearAllTabs()删除我们创建的所有标签,但我无法弄清楚如何删除标签或只是用新的Intent替换标签内的内容(Intent)。

所以我需要像removeTab(int index)

这样的东西

2 个答案:

答案 0 :(得分:25)

更容易:

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

答案 1 :(得分:13)

实际上,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)

知道这一点,我建议继承TabWidgetTabHost以添加您需要的行为。也许有一种更简单的方法,但这是我能想到的唯一方法。 祝你好运