2012-07-23 144 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