Question Comment centrer le texte horizontalement et verticalement dans un TextView?


Comment centrer le texte horizontalement et verticalement dans un TextView, de sorte qu'il apparaît exactement au milieu de la TextView dans Android?


1684
2018-01-11 00:27


origine


Réponses:


Je suppose que vous utilisez la mise en page XML.

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"
    android:text="@string/**yourtextstring**"
/>

Vous pouvez également utiliser la gravité center_vertical ou center_horizontal selon votre besoin.

et comme @stealthcopter commenté en Java: .setGravity(Gravity.CENTER);


2646
2018-01-11 01:53



android:gravity="center" 

Ça fera l'affaire


394
2018-02-08 22:54



Vous pouvez également le configurer dynamiquement en utilisant:

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

268
2017-11-21 12:25



android:layout_centerInParent="true"

Cela fonctionne lorsqu'il est utilisé avec un RelativeLayout où la hauteur et la largeur de la mise en page sont définies sur wrap_content.


97
2017-11-11 00:58



Vous pouvez également utiliser la combinaison:

android:gravity="left|center"

Ensuite, si la largeur du texte est supérieure à "fill_parent", le texte sera toujours aligné sur la gauche (pas centré comme avec gravity réglé uniquement sur "center").


68
2018-01-01 20:11



Appliquez la gravité:

TextView txtView = (TextView) findViewById(R.id.txtView);
txtView.setGravity(Gravity.CENTER_HORIZONTAL);

Pour vertical:

txtView.setGravity(Gravity.CENTER_VERTICAL);

En XML:

<TextView      
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center"
    android:text="@string/Hello_World"        
/>

44
2018-05-30 05:34



Si vous utilisez TableLayout, assurez-vous de placer également la gravité des TableRows au centre. Sinon, cela ne fonctionnera pas. Au moins, ça n'a pas marché avec moi jusqu'à ce que je place la gravité du TableRow au centre.

Par exemple, comme ceci:

<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center">        
    <TextView android:text="@string/chf" android:id="@+id/tv_chf" android:layout_weight="2" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center"></TextView>        
</TableRow>

35
2018-05-13 11:57



Vous devez définir Gravité de TextView (Centre horizontal et centre vertical) comme ceci:

android:layout_centerHorizontal="true"   

et

android:layout_centerVertical="true"

Et en utilisant dynamiquement:

textview.setGravity(Gravity.CENTER);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

33
2018-05-15 05:03



Il y a deux façons de le faire.

Le premier dans le code XML. Vous devez faire attention à la Gravity Attribut. Vous pouvez également trouver cet attribut dans l'éditeur graphique. cela peut être plus facile que l'EDITEUR XML.

<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_vertical|center_horizontal"
    android:text="Your Text"
/>

Pour votre scénario spécifique, les valeurs de gravité seront:

center_vertical|center_horizontal

Dans l'éditeur graphique, vous trouverez toutes les valeurs possibles, voir même leurs résultats.


32
2017-10-17 12:11