aligner le centre de texte avec Android


150

Je sais que cela semble facile. J'ai besoin de mettre un texte au centre, mais lorsque le texte est trop long, il doit aller en dessous, mais toujours s'aligner au centre de mon xml.

Voici mon code:

 <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/showdescriptioncontenttitle"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:layout_centerHorizontal="true"
>
    <TextView 
        android:id="@+id/showdescriptiontitle"
        android:text="Title"
        android:textSize="35dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
</LinearLayout>

J'ai mis paddingTop et Bottom car j'ai besoin d'espace. PS: Mon code est plus gros; c'est dans un RelativeLayout.


Ici, vous n'avez utilisé aucun style de texte
Dinith

Réponses:


381

Définissez également le android:gravityparamètre TextViewsur center.

Pour tester les effets de différents paramètres de mise en page, je recommande d'utiliser une couleur d'arrière-plan différente pour chaque élément, afin que vous puissiez voir comment votre mise en page change avec des paramètres tels que gravité, layout_gravity ou autres.


Merci, cela a fonctionné, il faut juste un peu de temps pour valider votre réponse!
Tsunaze le

Oui c'est vrai. Mais je pense que si le TextView a plus d'une ligne. Parce qu'avec seulement 1 ligne de texte non complète, le TextView ne remplira pas la mise en page horizontalement
peter.bartos

Vous pouvez éviter cela en définissant l'android de TextView: layout_width = "fill_parent"
peter.bartos

2
À ne pas confondre avec android:layout_gravity. Doh! :)
Joshua Pinter


21

utiliser de cette façon en xml

   <TextView
        android:id="@+id/myText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Time is precious, so love now."
        android:gravity="center"
        android:textSize="30dp"
        android:textColor="#fff"
        />

7

Vous pouvez utiliser les éléments suivants:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/showdescriptioncontenttitle"
    android:paddingTop="10dp"
    android:paddingBottom="10dp">

 <TextView
        android:id="@+id/textview1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Your text"
        android:typeface="serif" />
</LinearLayout>

La mise en page doit être relative pour que la propriété "center" soit utilisée.


5

L'ajout android:gravity="center"de votre TextView fera l'affaire (quelle que soit la mise en page parent Relative/Linear)!

De plus, vous devez éviter d'utiliser dp pour la taille de la police. Utilisez plutôt sp.


3

ajouter layout_gravity et gravité avec la valeur centrale sur TextView

<TextView
    android:text="welcome text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    />

2

Ajoutez simplement ces 2 lignes;

android:gravity="center_horizontal"
android:textAlignment="center"

1
android:layout_gravity="center"

ou

android:gravity="center"

les deux fonctionnent pour moi.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.