Jak określić różne układy orientacji pionowej i poziomej?

Widziałem odniesienia do możliwości określenia dwóch oddzielnych plików XML układu dla aktywności, jeden dla portretu i jeden dla krajobrazu. Nie znalazłem jednak żadnych informacji, jak to zrobić. Jak określić dla każdej czynności, który plik xml jest układem pionowym, a który poziomym?

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

Author: Jay Askren, 2010-01-23

6 answers

Create a layout-land Katalog i umieść w tym katalogu wersję poziomą pliku XML układu.

 183
Author: Mark B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-22 06:58:37

Wystarczy umieścić go w osobnych folderach o różnych nazwach 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

Under "Resource directory qualifiers for screen size and density"

 59
Author: Silvio Donnini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-23 17:52:26

Dla miłośników myszy! proponuję kliknąć prawym przyciskiem myszy na folderze resources i Add new resource file, a z dostępnych kwalifikatorów wybrać orientation:

Tutaj wpisz opis obrazka


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

"Twój-projekt-kierunek\app \ src \ main \ res"

Od tego czasu dowolny układ.plik xml w tym podfolderze będzie działał tylko dla trybu poziomego Automatycznie.

Użyj "layout-port" dla trybu portretowego.

 19
Author: AmiNadimi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-25 14:40:08

Tylko przypomnienie:

Usuń orientation z atrybutu android:configChanges dla aktywności w pliku manifest xml, jeśli go zdefiniowałeś:

android:configChanges="orientation|screenLayout|screenSize"
 17
Author: Robin Qiu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-09 10:07:11

Utwórz nowy katalog layout-land, następnie utwórz plik xml o tej samej nazwie w katalogu layout-land, który był katalogiem layout i dostosuj tam zawartość do trybu poziomego.

Zauważ, że id treści w obu xml jest taki sam.

 3
Author: Nouman Shah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-09 09:30:02

Lub użyj tego:

<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>
 2
Author: Giant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-09 09:34:45