77 votes

Comment centrer une vue dans une mise en page Android ?

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

155voto

CommonsWare Points 402670

Étape n° 1 : Enveloppez ce que vous voulez centrer sur l'écran en plein écran. RelativeLayout .

Étape 2 : Donnez à cette vue enfant (celle que vous voulez centrer à l'intérieur de la fenêtre RelativeLayout ) le android:layout_centerInParent="true" attribut.

19 votes

Cela n'a fonctionné pour moi que lorsque j'ai mis l'attribut Android:layout_centerInParent="true" dans la vue à l'intérieur du RelativeLayout.

1 votes

Que faire si je veux la positionner au centre, mais la déplacer vers le bas s'il y a un risque de chevauchement avec une autre vue ?

4 votes

Vous devez mettre android:layout_centerInParent="true" sur la vue enfant, et non sur la RelativeLayout . android:layout_* affectent la manière dont une vue est positionnée et dimensionnée au sein de son parent, et non la manière dont les enfants d'une vue sont positionnés et dimensionnés au sein de celle-ci.

30voto

Konklone Points 1744

Vous pouvez appliquer un centrage à n'importe quelle vue, y compris une disposition, en utilisant l'attribut XML Android:layout_gravity". Vous voudrez probablement lui donner la valeur "center".

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

2 votes

A ma connaissance, layout_gravity ne concerne que LinearLayout, et non les mises en page arbitraires.

0 votes

Comme vous l'avez mentionné, le paramètre layout_gravity n'est valable que pour LinearLayout. Qu'en est-il de RelativeLayout ? Parce que dans mon application, je veux intégrer une vue de texte à ImageView.

0 votes

J'ai également essayé avec relativelayout et à mon avis, cela fonctionne.

19voto

Pentium10 Points 68884
<?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>

15voto

Krishna Singh Points 31

J'ai pu centrer une vue en utilisant

android:layout_centerHorizontal="true" 

et

android:layout_centerVertical="true" 

paramètres.

2 votes

Notez que ces attributs ne fonctionnent que si la vue en question se trouve (directement) à l'intérieur d'un fichier de type RelativeLayout .

0 votes

C'est exactement ce dont j'avais besoin ! Merci

6voto

Maksim Dmitriev Points 515

Si vous voulez centrer une vue, utilisez celle-ci. Dans ce cas, TextView doit être la vue la plus basse dans votre XML car son 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"
/>

0 votes

Il voulait dire mettre la mise en page au centre, pas mettre la vue.

1 votes

@IgorG. Le positionnement d'une mise en page et d'une vue est le même car une mise en page est un Voir.

1 votes

Le site Layout les veuves s'étendent ViewGroup ...Mais ViewGroup étend la vue. Donc Layout est un ViewGroup y ViewGroup est un View

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X