只是澄清一下。我有一个TabHost,在tabhost内部就像5个标签。我正在玩tabhost,所以我试图关闭其中一个标签(即其中一个子视图)。问题是,即使它工作,选项卡下面的布局也保持不变,即如果我在关闭的选项卡中有一个textview,在主选项卡中有一个按钮,当我用textview关闭选项卡时,选项卡确实消失但textview仍然存在。这是我用来关闭标签的代码:
int vPos = mHost.getCurrentTab();
TabWidget tWidget = mHost.getTabWidget();
if (vPos != 0) {
tWidget.setCurrentTab(0);
tWidget.removeView(mHost.getTabWidget().getChildAt(vPos));
}
所以基本上它会关闭标签,切换到另一个标签,但标签下方的布局仍然完全相同。我知道人们希望我发布完整的代码,包括布局和诸如此类的东西,但这是一般的事情,它不考虑布局,它只关注选项卡(如果我错了,请随意指出)。
也许我应该在视图上调用invalidate(),但是无论我是否使子视图,选项卡小部件或tabhost无效,这都不起作用。
答案 0 :(得分:3)
不幸的是,由于缺少removeTab功能,这是TabWidget内部的问题。 当您从TabWidget调用removeView时,将从ViewGroup类调用removeView,该类没有选项卡的概念。 因此,您实际上只是删除了实际的选项卡,并使下面的索引和布局不受影响。
过多的解决方法是调用removeAllViews并重新添加所有视图。