2013-05-01 72 views
5

Android 2.2中的選項卡佔用全部寬度。如何修復操作欄Sherlock的標籤寬度不一致?

enter image description here

enter image description here

在Android 4.2關係7標籤,製表符不佔用整個寬度。 兩者都有相同的代碼。使用actionBarsherlock

final ActionBar actionBar = getSupportActionBar(); 
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
// add tabs 
Tab tab1 = actionBar.newTab().setText("TabTitle1") 
.setTabListener(new MyTabListener(null)); 
actionBar.addTab(tab1); 

我錯過了什麼?這應該在主題中修復!我只想標籤佔據全部可用寬

回答

7

這是不是一個錯誤的原因有兩個:

  1. ActionBarSherlock是Android 4.0操作欄的用戶界面和API到Android的早期版本中的一個補丁包。 Android 4.0之後操作欄行爲的任何更改都不會被反向移植。這一行爲在Android 4.2中發生了變化。
  2. 您正在比較兩種截然不同尺寸的設備。如果您抓住運行Android 4.2的1280x720 XHDPI手機,您會發現縱向顯示的兩個標籤跨越了設備的寬度。在4.2(例如Nexus 4)上抓取1280x768 XHDPI手機,您會看到兩個標籤不能跨越整個寬度,因爲尺寸變得太大而無法在全寬度範圍內容納。
+0

如果我希望製表符跨越所有設備上的全部可用寬度,有什麼可能的解決方案呢? – sat 2013-05-02 07:30:55

+0

製作您自己的標籤,不要使用操作欄中的標籤。 – 2013-05-02 15:46:29

+1

@JakeWharton - 你如何製作自己的標籤?你的意思是用自定義視圖替換標籤,還是你建議構建我們自己的自定義組件,看起來像ActionBar,並將其包含在每個頁面中? – 2013-07-26 19:21:16