0

有没有办法取消选择 TabHost 中的所有元素。我想我可以制作一个存根标签,其宽度为 0dp。这是一条路吗?它是如何完成的 - 我如何将样式应用于一个特定的选项卡?

4

2 回答 2

2

要使标签伸展开:

fakeTab.setVisibility(View.GONE);
于 2012-11-01T17:34:50.183 回答
1

如果这是您使用 Id 的方法,建议您为“假标签”创建自己的标签视图。

像这样的东西

private class TabView extends FrameLayout  {
    public TabView(Context c) {
        super(c);

        View indicator = new View(c);
        //Might even wanna go for 0 here?
        LayoutParams params = new FrameLayout.LayoutParams(1, 1);
        indicator.setLayoutParams(params);

        addView(indicator);
    }
}

然后只需通过以下方式将其添加到您的 TabHost :

    TabView fakeTab = new TabView(this, 0, "faketab");
    spec = tabHost.newTabSpec("about").setIndicator(fakeTab);
    tabHost.addTab(spec);

当您想将所有选项卡显示为未选中时,您只需让 TabHost 选择您的假选项卡。

于 2012-07-23T15:11:14.300 回答