web-dev-qa-db-fra.com

Comment spécifier différentes mises en page pour les orientations portrait et paysage?

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?

133
Jay Askren

Créer un layout-land répertoire et placez la version paysage de votre fichier XML de présentation dans ce répertoire.

194
Mark B

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"

59
Silvio Donnini

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:

enter image description here


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.

23
AmiNadimi

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"
19
Robin Qiu

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.

3
Nouman Shah

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>
2
Giant

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/

1
s-hunter

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.

enter image description here

J'espère que cela fonctionne pour vous.

1
Akanshi Srivastava

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.

enter image description here

0
Shid
  1. Clic droit res dossier,
  2. Nouveau -> Android Fichier de ressources
  3. dans Qualificateurs disponibles, sélectionnez Orientation,
  4. ajouter au qualificatif choisi
  5. dans l'orientation de l'écran, sélectionnez Paysage
  6. Appuyer sur OK

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.

enter image description here

0
eos1d3