J'ai vu des références à la possibilité de spécifier deux fichiers XML de mise en page distincts pour une activité, un pour Portrait et un pour Paysage. Je n'ai pas trouvé d'informations sur la façon de procéder. Comment spécifier pour chaque activité quel fichier xml est sa mise en page portrait et quelle est la mise en page Paysage?
Est-il également possible de spécifier différentes dispositions pour différentes tailles d'écran? Si oui, comment cela se fait-il?
Créer un layout-land
répertoire et placez la version paysage de votre fichier XML de présentation dans ce répertoire.
Il vous suffit de le placer dans des dossiers distincts portant des noms différents en fonction de l'orientation et de la résolution. L'appareil sélectionne automatiquement celui qui convient pour ses paramètres d'écran.
Plus d'infos ici:
http://developer.Android.com/guide/practices/screens_support.html
sous "Qualificatifs du répertoire de ressources pour la taille et la densité de l'écran"
Pour les amoureux de la souris! Je dis un clic droit sur le dossier des ressources et Add new resource file
et des qualificateurs disponibles sélectionnent le orientation
:
Mais vous pouvez toujours le faire manuellement en ajoutant le sous-dossier "layout-land" à
"Votre répertoire de projet\app\src\main\res"
depuis lors, tous les fichiers layout.xml situés dans ce sous-dossier ne fonctionneront qu'en mode paysage automatiquement .
Utilisez "layout-port" pour le mode portrait.
Juste un rappel:
Retirer orientation
de Android:configChanges
attribut de l’activité dans votre fichier manifeste xml
si vous l’avez défini:
Android:configChanges="orientation|screenLayout|screenSize"
Créer un nouveau répertoire layout-land
, puis créez le fichier xml
avec le même nom dans layout-land
comme c’était layout
répertoire et y aligner votre contenu pour le mode Paysage.
Notez que l'identifiant du contenu dans les deux xml
est identique.
Ou utilisez ceci:
<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>
La dernière ligne ci-dessous est un exemple d'application de deux quantificateurs: paysage et plus petite largeur (600dp). Mettez à jour 600dp avec ceux dont vous avez besoin.
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
Ce qui précède s'applique également aux dimens
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
Une métrique de périphérique utile: https://material.io/tools/devices/
Je pense que la manière la plus simple dans les dernières versions de Android) consiste à passer en mode Création d’un XML (et non de Texte).
Ensuite, dans le menu, sélectionnez l'option - Créer une variation de paysage. Cela créera un paysage xml sans problème en quelques secondes. La dernière version de Android Studio vous permet de créer immédiatement une vue en paysage.
J'espère que cela fonctionne pour vous.
Le moyen le plus rapide pour Android Studio 3.x.x
1.Allez dans l’onglet Conception de la structure de l’activité
2.En haut, vous devez appuyer sur le bouton d'orientation pour l'aperçu, il existe une option pour créer une disposition en paysage (image de contrôle), un nouveau dossier sera créé en tant que fichier de disposition xml pour cette orientation particulière.
Avec Android Studio 3.4.1, , il ne crée plus layout-land
dossier . Il créera un dossier et rassemblera deux fichiers de mise en page.