2325 Stimmen

Wie zentriere ich Text horizontal und vertikal in einer TextView?

Wie zentriere ich den Text horizontal und vertikal in einer TextView so dass es genau in der Mitte des Bildes erscheint. TextView in Android ?

15 Stimmen

Sowohl layout_width als auch layout_height auf fill_parent setzen, dann gravity auf center setzen. Das wird den Trick machen

5 Stimmen

Fill_parent ist jetzt veraltet, also verwenden Sie MATCH_PARENT in layout_width und layout_height und setzen Sie die Schwerkraft des TextViews auf Zentrum.

59voto

Gaganpreet Singh Punkte 886

Schwerkraft anwenden:

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

Für die Vertikale:

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"        
/>

46voto

Cristiano Guerra Punkte 605

Es gibt zwei Möglichkeiten, dies zu tun.

Die erste im XML-Code. Sie müssen auf die Gravity Attribut. Sie können dieses Attribut auch im Grafik-Editor finden; dies ist möglicherweise einfacher 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 und sehen sogar deren Ergebnisse.

41voto

Maverick1st Punkte 3714

Wenn Sie TableLayout verwenden, stellen Sie sicher, dass Sie auch die Schwerkraft der TableRows auf Center setzen. Andernfalls wird es nicht funktionieren. Zumindest hat es bei mir nicht funktioniert, bis ich die Schwerkraft der TableRow auf center gesetzt 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>

0 Stimmen

Interessant. Haben zu überprüfen, ob das für LinearLayout (die TableRow-Eltern) als auch gültig ist.

39voto

NagarjunaReddy Punkte 8581

Sie müssen Folgendes einstellen TextView Schwerkraft (Horizontale und vertikale Mitte) so:

android:layout_centerHorizontal="true"   

y

android:layout_centerVertical="true"

Und dynamisch verwenden:

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

0 Stimmen

Die Semantik des Codes ist falsch. Ersetzen Sie layout_centerhorizontal y layout_centervertical por layout_centerHorizontal y layout_centerVertical ("H" und "V" in Großbuchstaben, sonst funktioniert es nicht).

2 Stimmen

Layout_* teilt dem Elternteil der Ansicht mit, wo sie sich befinden soll. Ohne layout_* sagt der View, wie sie ihre Komponenten platzieren soll

34voto

epicness42 Punkte 1127

Meiner Meinung nach,

android:gravity="center"

ist besser als,

android:layout_centerInParent="true"

was besser ist als,

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

zumindest für die Formatierung von Text.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X