Richten Sie das Textzentrum auf Android aus

149

Ich weiß, dass es einfach klingt. Ich muss einen Text in die Mitte setzen, aber wenn der Text zu lang ist, muss er nach unten gehen, aber immer noch in der Mitte meiner XML-Datei ausgerichtet sein.

Hier ist mein 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>

Ich habe paddingTop und Bottom gesetzt, weil ich etwas Platz brauche. PS: Mein Code ist größer. Es ist in einem RelativeLayout.

Tsunaze
quelle
Hier haben Sie keinen
Textstil verwendet

Antworten:

380

Stellen Sie auch den android:gravityParameter TextViewauf ein center.

Zum Testen der Auswirkungen verschiedener Layoutparameter empfehle ich, für jedes Element eine andere Hintergrundfarbe zu verwenden, damit Sie sehen können, wie sich Ihr Layout mit Parametern wie Schwerkraft, layout_gravity oder anderen ändert.

peter.bartos
quelle
Danke, es hat funktioniert, brauche nur etwas Zeit, um deine Antwort zu bestätigen!
Tsunaze
Ja das stimmt. Aber ich denke nur, wenn die TextView mehr als eine Zeile hat. Da mit nur 1 nicht vollständigen Textzeile die Textansicht das Layout nicht horizontal
ausfüllt
Sie können dies vermeiden, indem Sie TextViews Android einstellen: layout_width = "fill_parent"
peter.bartos
2
Nicht zu verwechseln android:layout_gravity. Doh! :)
Joshua Pinter
29

benutze diesen Weg

txt.setGravity(Gravity.CENTER);
bhargavkumar040
quelle
21

Verwenden Sie diesen Weg in 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"
        />
Sakshi
quelle
7

Sie können Folgendes verwenden:

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

Das Layout muss relativ sein, damit die Eigenschaft "center" verwendet werden kann.

gsb
quelle
5

Das Hinzufügen android:gravity="center"in Ihrer Textansicht reicht aus (sei das übergeordnete Layout Relative/Linear)!

Außerdem sollten Sie die Verwendung von dp für die Schriftgröße vermeiden. Verwenden Sie stattdessen sp.

Divya
quelle
3

Fügen Sie Layout_gravity und Gravity mit dem Mittelpunkt in TextView hinzu

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

Fügen Sie einfach diese 2 Zeilen hinzu;

android:gravity="center_horizontal"
android:textAlignment="center"
Ramandeep Singh
quelle
1
android:layout_gravity="center"

oder

android:gravity="center"

beides funktioniert bei mir.

Dinith
quelle