Comment puis-je avoir une mise en page pour le paysage et une autre pour le portrait ? Je veux assumer la largeur supplémentaire et conserver l'espace vertical lorsque l'utilisateur fait pivoter le téléphone sur le côté.
Réponse
Trop de publicités?Je vais essayer de l'expliquer brièvement.
Tout d'abord, vous pouvez remarquer que vous devez maintenant utiliser ConstraintLayout comme demandé par google (voir la bibliothèque androix).
Dans votre projet Android studio, vous pouvez fournir des mises en page spécifiques aux écrans en créant des répertoires supplémentaires res/layout/. Un pour chaque configuration d'écran qui nécessite une mise en page différente.
Cela signifie que vous devez utiliser l'option qualificatif de répertoire dans les deux cas :
- Prise en charge des appareils Android
- Android en mode paysage ou portrait
En conséquence, voici un exemple :
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
Vous pouvez également utiliser le qualificatif avec les fichiers de ressources en utilisant dimens.xml.
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/dimens.xml
<resources>
<dimen name="grid_view_item_height">70dp</dimen>
</resources>
res/values-land/dimens.xml
<resources>
<dimen name="grid_view_item_height">150dp</dimen>
</resources>
votre_grille_ou_liste_d'articles.xml
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content
<ImageView
android:id="@+id/image"
android:layout_width="0dp"
android:layout_height="@dimen/grid_view_item_height"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:background="@drawable/border"
android:src="@drawable/ic_menu_slideshow">
</androidx.constraintlayout.widget.ConstraintLayout>
Source : https://developer.Android.com/training/multiscreen/screensizes
- Réponses précédentes
- Plus de réponses