2011-06-30 10 views

Odpowiedz

72

Jeśli to, co próbujesz zrobić, to pokazać inny układ, w zależności od wersji interfejsu API na urządzeniu, chcesz użyć configuration qualifiers. Specyfikacje dla alternative resources są również udokumentowane.

Najprostszym sposobem na to jest, aby utworzyć folder dla każdego układu poziomie API, którego chcesz użyć, sformatowany w następujący sposób:

res/layout/mylayout.xml  (Default) 
res/layout-v4/mylayout.xml (Android 1.6) 
res/layout-v11/mylayout.xml (Android 3.0) 

i tak dalej, gdzie vN jest poziom API. Określone poziomy API można znaleźć on this page.

+0

dzięki za odpowiedź na tę pracę całkiem dobrze! – Atheh

+0

Gdybym miał tylko trzy pliki opisane powyżej, ale używam urządzenia GB, którego pliku będzie używał? (layout-v4 lub layout)? Czy muszę utworzyć inny folder dla każdej platformy? Planuję wspierać od GB –

+6

@ FredericYesidPeñaSánchez Spowoduje to powrót do następnego najbardziej pasującego układu. Dlatego res/layout zawsze będzie dopasowywany ostatni, co będzie konieczne, ale każdy inny jest opcjonalny. Nie potrzebujesz folderu na każdą platformę, chyba że potrzebujesz czegoś innego. – Jess

3

Jako Andrew Koester powiedział, że można użyć różnych folderów wersji, ale okazało się, że to dużo pracy, ponieważ nie będzie wrócić do domyślnego układu. Jeśli używałeś layout-v14, to zadziała, ale każde api po 14 również będzie miało ten układ i będziesz musiał użyć innego layoutu-v? znowu to zmienić. Wszystko zależy od tego, co robisz, ale znalazłem, jeśli robisz wiele rzeczy programowo to działa cuda:

if(Build.VERSION.SDK_INT == Build.VERSION_CODES.ICE_CREAM_SANDWICH || Build.VERSION.SDK_INT == Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1){ 
      //ex. if ics is met then do this 

     }else{ 
      //if api is not ics then do this 
     } 
Powiązane problemy