Come faccio a specificare diversi layout per orientamento verticale e orizzontale?
-
22-09-2019 - |
Domanda
Ho visto i riferimenti a essere in grado di specificare due file di layout XML separati per un'attività, uno per ritratto e uno per il Paesaggio. Io non sono stato a trovare tutte le informazioni su come fare questo però. Come faccio a specificare per ogni attività che file XML viene è layout verticale, e che è il layout Paesaggio?
E 'anche possibile specificare diversi layout per schermi di dimensioni diverse? Se sì, come è questo fatto?
Soluzione
Crea un layout-land
di directory e mettere la versione paesaggio del file XML di layout in quella directory.
Altri suggerimenti
Non vi resta che metterla sotto cartelle separate con nomi diversi a seconda dell'orientamento e della risoluzione, il dispositivo selezionerà automaticamente quello giusto per le sue impostazioni dello schermo
Più informazioni qui:
http://developer.android.com/guide/practices/screens_support.html
voce "qualificazioni directory delle risorse per le dimensioni dello schermo e la densità"
Per gli amanti del mouse dico tasto destro del mouse sulla cartella delle risorse e Add new resource file
, e dalle qualificazioni disponibili seleziona le orientation
:
Ma ancora è possibile farlo manualmente per esempio, aggiungendo la sottocartella "Layout-terra" per
"Your-Project-directory \ app \ src \ Main \ res"
Da allora tutti i file layout.xml in questo sotto-cartella funziona solo per la modalità orizzontale automaticamente .
Usa "Layout-port" per la modalità portrait.
Solo un promemoria:
Rimuovi orientation
da attributo android:configChanges
per l'attività nel file manifest xml
se è stato definito che:
android:configChanges="orientation|screenLayout|screenSize"
Crea un nuovo layout-land
directory, quindi creare file di xml
con lo stesso nome in layout-land
come era directory layout
e allineare lì i contenuti per la modalità Paesaggio.
Si noti che id di contenuti in entrambi xml
è lo stesso.
In alternativa, utilizzare questo:
<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>
Credo che il modo più semplice nelle ultime versioni di Android è andando modalità di un XML (non testo) al design.
Quindi, dal menu, selezionare l'opzione - Crea Paesaggio Variation. Questo creerà un xml paesaggio senza alcun problema in pochi secondi. L'ultima versione di Android Studio consente di creare una visione del paesaggio subito.
Spero che questo funziona per voi.
L'ultima riga in basso è un esempio per l'applicazione di due quantificatori: del paesaggio e la più piccola larghezza dello schermo (600dp). Aggiornare 600dp con quelle che ti servono.
res/layout/main_activity.xml # For handsets
res/layout-land/main_activity.xml # For handsets in landscape
res/layout-sw600dp/main_activity.xml # For 7” tablets
res/layout-sw600dp-land/main_activity.xml # For 7” tablets in landscape
È possibile che questo vale anche per dimens così
res/values/dimens.xml # For handsets
res/values-land/dimens.xml # For handsets in landscape
res/values-sw600dp/dimens.xml # For 7” tablets
res/values-sw600dp-land/dimens.xml # For 7” tablets in landscape
Un utile metriche dei dispositivi: https://material.io/tools/devices/
- Fare clic destro cartella res,
- Nuovo -> File Android Resource
- in qualificazioni disponibili, selezionare Orientamento,
- aggiungere alla qualificazione Scelto
- in Orientamento dello schermo, selezionare Orizzontale
- Premere OK
Utilizzo di Android 3.4.1 Studio, non è più crea cartella layout-land
. Si creerà una cartella e mettere i file di layout due insieme.
Il modo più veloce per Studio Android 3.x.x
1.Go alla scheda di progettazione del layout di attività
2.At parte superiore è necessario premere il tasto di orientamento per anteprima, c'è un opzione per creare un layout del paesaggio (verifica immagine), una nuova cartella verrà creata come file di layout XML per quel particolare orientamento