1

只是为了澄清。我有一个 TabHost,在那个 tabhost 里面有 5 个标签。我正在玩tabhost,所以我试图关闭其中一个选项卡(即其中一个子视图)。问题是,即使它有效,选项卡下方的布局保持不变,即如果我在要关闭的选项卡中有一个 textview,并且在主选项卡中有一个按钮,当我用 textview 关闭选项卡时,选项卡确实消失了,但文本视图仍然存在。这是我用来关闭标签的代码:

    int vPos = mHost.getCurrentTab();
    TabWidget tWidget = mHost.getTabWidget();

    if (vPos != 0) {
        tWidget.setCurrentTab(0);
        tWidget.removeView(mHost.getTabWidget().getChildAt(vPos));

    }

所以基本上它关闭选项卡,切换到另一个选项卡,但选项卡下方的布局保持完全相同。我知道人们希望我发布完整的代码,包括布局和诸如此类的东西,但这是一般的事情,它不考虑布局,它只考虑选项卡(如果我弄错了,请随时指出)。

也许我应该在视图上调用 invalidate() ,但无论我使子视图、选项卡小部件还是选项卡主机无效,这都不起作用。

4

1 回答 1

3

不幸的是,由于缺少 removeTab 功能,这是 TabWidget 内部的一个问题。当您从 TabWidget 调用 removeView 时,从没有选项卡概念的 ViewGroup 类调用 removeView。结果,您实际上只是删除了实际的选项卡,而下面的索引和布局不受影响。

一个过度的解决方法是调用 removeAllViews 并重新添加所有视图。

于 2012-11-01T00:14:55.910 回答