2010-10-06 47 views
0

任何人都知道的Facebook是如何做到這一點:



alt textTabHost在Facebook上爲Android



據我所知,我們不能改變tabhost的高度。我猜測他們在tabhost上放置了「Frank Cho」視圖,讓它看起來更短,但我可能是錯的。任何人都知道發生了什麼事?

回答

3

你實際上可以有自定義的標籤小部件。您需要將選項卡指示器設置爲一些自定義佈局(使用drawables),並且您應該很好。

下面是一個半例如:

final TabHost host = getTabHost(); 

final TextView indicator = (TextView) getLayoutInflater().inflate(
          R.layout.tab_indicator, 
          getTabWidget(), false); 
indicator.setText("Tab title"); 

host.addTab(host.newTabSpec("The tab tag") 
      .setIndicator(indicator) 
      .setContent([put your content here])); 
} 

凡tab_indicator佈局可以是這樣的:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tab_label" 
    android:layout_width="0dip" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:gravity="center" 
    android:textSize="14sp" 
    android:textStyle="bold" 
    android:minHeight="38dp" 
    android:background="@drawable/minitab" /> 

的Minitab的繪製是繪製項目選擇(所以你需要有這個圖片選定,默認,按下和未選中)。 facebook應用程序對默認選項卡使用了一些白色可繪製圖像,未使用選項卡使用了藍色漸變繪製。

檢查出一個完整的工作示例的谷歌IO調度應用:http://code.google.com/p/iosched/(具體的TrackDetailActivity.java)

+0

會試試這個......謝謝 – Sid 2010-10-07 00:53:03

2

某些別有用心的人有什麼,我認爲是正確的答案,但刪除了它出於某種原因...

有問題的高度不是TabHost,而是TabWidget

嘗試使用的setIndicator()版本,需要一個View而不只是StringString加上可繪製資源。雖然我還沒有玩過這個,但我的理解是,它很好地解決了這個問題。

不過要小心,不要使用太難觸摸的標籤。

+0

是的,那就是我 - 我打了太空吧,這篇文章發表得太快了。 – 2010-10-07 00:25:01

+0

謝謝....我現在的問題是選項卡很大,並佔用了太多的屏幕空間,我想讓它們做什麼。 – Sid 2010-10-07 00:54:00