如何从TabHost中删除选项卡

Anw*_*dra 14 android android-widget

TabHost小部件中,我可以使用TabHost.addTab(TabHost.TabSpec tabSpec)创建一个包含其内容(Intent)的新选项卡.

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

所以我需要的东西 removeTab(int index)

2re*_*d13 25

更容易:

 tabHost.getTabWidget().removeView(tabHost.getTabWidget().getChildTabViewAt(3));
Run Code Online (Sandbox Code Playgroud)


Sep*_*phy 13

实际上,clearAllTabs做到了:

public void clearAllTabs() {
  mTabWidget.removeAllViews();
  initTabHost();
  mTabContent.removeAllViews();
  mTabSpecs.clear();
  requestLayout();
  invalidate();
}
Run Code Online (Sandbox Code Playgroud)

方法removeAllViews来自类ViewGroup.幸运的是,ViewGroup确实有方法只删除一个视图:

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

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