2013-05-01 8 views
5

Karty w systemie Android 2.2 zajmują pełną szerokość.Jak naprawić niespójność szerokości pasków akcji w Sherlockach?

enter image description here

enter image description here

Karty w Android 4,2 nexus 7, zaczepy nie zajmuje pełnej szerokości. Oba mają ten sam kod. za pomocą działaniaBarsherlock
np.

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); 

Czego mi brakuje? Czy należy to naprawić w motywie! Chcę tylko wypustki zajmować pełną dostępną szerokość

Odpowiedz

7

To nie jest błąd z dwóch powodów:

  1. ActionBarSherlock jest backport z Androidem 4.0 bar działania interfejsu użytkownika i API do poprzednich wersji Androida. Wszelkie zmiany w zachowaniu paska akcji po Androidzie 4.0 nie zostaną przeniesione. To zachowanie zmieniło się w systemie Android 4.2.
  2. Porównujesz dwa bardzo różne rozmiary urządzenia. Jeśli zdobędziesz telefon XHDPI o rozdzielczości 1280 x 720 z Androidem 4.2, zobaczysz, że dwie karty obejmują całą szerokość urządzenia w trybie portretu. Chwyć telefon XHDPI 1280 x 768 w wersji 4.2 (np. Nexus 4), a zobaczysz, że dwie karty nie obejmują całej szerokości, ponieważ rozmiar staje się zbyt duży, by pomieścić na całej szerokości.
+0

Co może być na to rozwiązanie, jeśli chcę, aby zakładki obejmowały całą dostępną szerokość na wszystkich urządzeniach? – sat

+0

Twórz własne karty i nie używaj ich na pasku akcji. –

+1

@JakeWharton - jak tworzysz własne zakładki? Czy chodzi o zastąpienie kart niestandardowym widokiem, czy też sugerujesz budowanie własnego niestandardowego komponentu, który wygląda jak pasek akcji i uwzględnia go na każdej stronie? –