web-dev-qa-db-fra.com

Comment centrer une vue à l'intérieur d'une mise en page Android?

Je veux mettre une mise en page au centre de l'écran.

72
Vicky

Étape n ° 1: Emballez tout ce que vous voulez au centre de l’écran en plein écran RelativeLayout.

Étape n ° 2: Donnez à cette vue enfant (celle que vous voulez centrer dans le RelativeLayout) le Android:layout_centerInParent="true" attribut.

145
CommonsWare

Vous pouvez appliquer un centrage à n'importe quelle vue, y compris une présentation, en utilisant l'attribut XML Android: layout_gravity ". Vous voudrez probablement lui attribuer la valeur" centre ".

Vous pouvez trouver une référence des valeurs possibles pour cette option ici: http://developer.Android.com/reference/Android/widget/LinearLayout.LayoutParams.html#attr_Android:layout_gravity

29
Eric Mill
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/relLayout1"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_gravity="center">
    <ProgressBar
        Android:id="@+id/ProgressBar01"
        Android:layout_centerInParent="true"
        Android:layout_width="wrap_content"
        Android:layout_gravity="center"
        Android:layout_height="wrap_content"></ProgressBar>
    <TextView
        Android:layout_below="@id/ProgressBar01"
        Android:text="@string/please_wait_authenticating"
        Android:id="@+id/txtText"
        Android:paddingTop="30px"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"></TextView>
</RelativeLayout>
19
Pentium10

J'ai pu centrer une vue en utilisant

Android:layout_centerHorizontal="true" 

et

Android:layout_centerVertical="true" 

params.

15
Krishna Singh

Si vous voulez centrer une vue, utilisez celle-ci. Dans ce cas, TextView doit être la vue la plus basse de votre code XML, car layout_height est match_parent.

<TextView 
    Android:id="@+id/tv_to_be_centered"
    Android:layout_height="match_parent"
    Android:layout_width="match_parent"
    Android:gravity="center"
    Android:text="Some text"
/>
6
Maksim Dmitriev

Réponse mise à jour: Mise en forme de la contrainte

Il semble que la tendance actuelle dans Android) consiste à utiliser une présentation Constraint. Bien qu'il soit assez simple de centrer une vue à l'aide d'un RelativeLayout (comme d'autres réponses l'ont montré), la ConstraintLayout est plus puissant que le RelativeLayout pour les mises en page plus complexes. Il est donc utile de savoir comment faire maintenant.

Pour centrer une vue, faites simplement glisser les poignées sur les quatre côtés du parent.

enter image description here

4
Suragch

Cela fonctionnera car ce code a parfois besoin des deux propriétés

Android:layout_gravity="center"
Android:layout_centerHorizontal="true"
2
N Islam

Ajoutez Android: layout_centerInParent = "true" à l'élément que vous souhaitez centrer dans RelativeLayout

2
Rasika Sugathadasa

Utilisez ConstraintLayout. Voici un exemple qui centrera la vue en fonction de la largeur et de la hauteur de l'écran parent:

<?xml version="1.0" encoding="utf-8"?>
<Android.support.constraint.ConstraintLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">

    <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:layout_width="0dp"
        Android:layout_height="0dp"
        Android:background="#FF00FF"
        Android:orientation="vertical"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHeight_percent=".6"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintWidth_percent=".4"></LinearLayout>
</Android.support.constraint.ConstraintLayout>

Vous devrez peut-être changer de grade pour obtenir la dernière version de ConstraintLayout:

dependencies {
...
    implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
}

enter image description here

1
live-love