2010-01-23 13 views
115

Widziałem odniesienia do możliwości określenia dwóch oddzielnych plików xml układu dla działania, jednego dla portretu i dla krajobrazu. Nie znalazłem jednak żadnych informacji, jak to zrobić. Jak określić dla każdego działania, który plik xml jest jego układem pionowym, a który jest układem Landscape?Jak określić różne układy orientacji pionowej i poziomej?

Czy możliwe jest również określenie różnych układów dla różnych rozmiarów ekranu? Jeśli tak, jak to się robi?

Odpowiedz

169

Utwórz katalog layout-land i umieść w tym katalogu wersję krajobrazu pliku XML układu.

+2

Czy to oznacza, że ​​wszystkie czynności muszą zdefiniować widok poziomy i pionowy, jeśli to zrobię? –

+13

Nie, jeśli nie istnieje definicja gruntu układu, po prostu używa układu XML w standardowym katalogu układu. –

+0

w moim przypadku layout-land nie działa, gdy używam, android: configChanges = "orientation | keyboardHidden | screenSize" –

58

Po prostu trzeba umieścić go na podstawie odrębnych folderów z różnymi nazwami w zależności od orientacji i rozdzielczości, urządzenie automatycznie wybierze odpowiedni dla swoich ustawień ekranu

Więcej informacji tutaj:

http://developer.android.com/guide/practices/screens_support.html

w sekcji "Kwalifikatory katalogu zasobów dla rozmiaru i gęstości ekranu"

+0

Działa tylko w przypadku systemu operacyjnego w wersji 1.6 lub nowszej. Jeśli chcesz wspierać 1.5, potrzebujesz tego linku: http://developer.android.com/guide/practices/screens-support-1.5.html –

+2

@Silvio Donnini - linki nie mają już wymaganych informacji. – itsaboutcode

+2

@itsaboutcode Tak robi: Zejdź do "Używanie kwalifikatorów konfiguracji" – Danation

2

Lub użyj:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:scrollbars="vertical" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent"> 

    <LinearLayout android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"> 

    <!-- Add your UI elements inside the inner most linear layout --> 

    </LinearLayout> 
</ScrollView> 
16

Przypominamy:

Usuń orientation z atrybutem android:configChanges za aktywność w oczywisty xml pliku jeśli zdefiniowano go:

android:configChanges="orientation|screenLayout|screenSize" 
3

Utwórz nowy katalog layout-land, a następnie utworzyć xml plik o tej samej nazwie w katalogu layout-land, tak jak to było w katalogui wyrównaj tam zawartość dla trybu Krajobraz.

Należy zauważyć, że identyfikator treści zarówno w jest taki sam.

14

Dla miłośników myszy! mówię prawym przyciskiem myszy na folderze zasobów i dodać nowy plik zasobów, a od Dostępne kwalifikatorów wybrać orientację:

enter image description here


Ale nadal można to zrobić ręcznie, powiedzmy, dodając podfolder " layout-land”do

"Your-Project-Direction \ app \ src \ main \ res"

odtąd każdy plik layout.xml pod tym podkatalogu będzie działać tylko w trybie poziomym aut omatycznie.

Użyj "Port układu" w trybie portretu.