Frage Wie zentriere ich Text in einem TextView horizontal und vertikal?


Wie zentriere ich den Text horizontal und vertikal in einem TextView, so dass es genau in der Mitte erscheint TextView im Android?


1684
2018-01-11 00:27


Ursprung


Antworten:


Ich gehe davon aus, dass Sie das XML-Layout verwenden.

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

Sie können auch die Schwerkraft verwenden center_vertical oder center_horizontal nach Ihren Bedürfnissen.

und wie @stealthcopter kommentierte in Java: .setGravity(Gravity.CENTER);


2646
2018-01-11 01:53



android:gravity="center" 

Dies wird den Trick machen


394
2018-02-08 22:54



Sie können es auch dynamisch einrichten mit:

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

268
2017-11-21 12:25



android:layout_centerInParent="true"

Dies funktioniert, wenn Sie RelativeLayout verwenden, wobei die Höhe und Breite des Layouts auf wrap_content gesetzt sind.


97
2017-11-11 00:58



Sie können auch die Kombination verwenden:

android:gravity="left|center"

Wenn die Breite der Textansicht größer als "fill_parent" ist, wird der Text immer noch nach links ausgerichtet (nicht zentriert, da die Schwerkraft nur auf "center" eingestellt ist).


68
2018-01-01 20:11



Wende die Schwerkraft an:

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

Für vertikal:

txtView.setGravity(Gravity.CENTER_VERTICAL);

In 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



Wenn Sie TableLayout verwenden, stellen Sie sicher, dass auch die Schwerkraft von TableRows in der Mitte liegt. Sonst wird es nicht funktionieren. Zumindest funktionierte es nicht mit mir, bis ich die Schwerkraft des TableRow zentriert habe.

Zum Beispiel so:

<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



Sie müssen einstellen TextView-Gravitation (Center Horizontal & Center Vertical) so:

android:layout_centerHorizontal="true"   

und

android:layout_centerVertical="true"

Und dynamisch mit:

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

33
2018-05-15 05:03



Es gibt zwei Möglichkeiten, dies zu tun.

Der erste im XML-Code. Sie müssen aufpassen auf die Gravity Attribut. Sie finden dieses Attribut auch im Grafikeditor. Es könnte einfacher sein als der XML EDITOR.

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

Für Ihr spezifisches Szenario werden die Werte der Schwerkraft sein:

center_vertical|center_horizontal

Im grafischen Editor finden Sie alle möglichen Werte, sogar ihre Ergebnisse.


32
2017-10-17 12:11



Meiner Meinung nach,

android:gravity="center"

ist besser als,

android:layout_centerInParent="true"

was ist besser als

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"

zumindest zum Formatieren von Text.


29
2017-07-16 04:28