2012-07-23 113 views
0

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

回答

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选择你的假标签。

+0

这是不够清晰。你能否用更实际的例子来阐明? – midnight 2012-07-24 06:30:27

+0

也许这会有帮助吗? :) – Slickelito 2012-07-24 06:35:38

+0

关于你的类的构造函数我不得不写'TabView fakeTab = new TabView(_activity); _tabHost.addTab(_tabHost.newTabSpec(“fake”).setIndicator(fakeTab));'它说:由java:。 lang.IllegalArgumentException:您必须指定一种方法来创建标签内容 – midnight 2012-07-24 06:43:28

1

要离开的标签拉伸:

fakeTab.setVisibility(View.GONE); 
+0

哇,这是一个有见地的答案。 – midnight 2012-11-02 07:12:38

相关问题