wyrównaj centrum tekstu z Androidem


150

Wiem, że to brzmi łatwo. Muszę umieścić tekst na środku, ale gdy tekst jest zbyt długi, musi znajdować się poniżej, ale nadal wyrównywać na środku mojego xml.

Oto mój kod:

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

Umieściłem paddingTop i Bottom, ponieważ potrzebuję trochę miejsca. PS: Mój kod jest większy; jest w RelativeLayout.


Tutaj nie
użyłeś

Odpowiedzi:


381

Ustaw również android:gravityparametr w TextViewna center.

Aby przetestować efekty różnych parametrów układu, zalecam użycie innego koloru tła dla każdego elementu, aby można było zobaczyć, jak zmienia się układ z parametrami takimi jak grawitacja, układ_grawitacji lub inne.


Dziękuję, zadziałało, potrzebuję trochę czasu, aby potwierdzić swoją odpowiedź!
Tsunaze,

Tak to prawda. Ale myślę tylko wtedy, gdy TextView ma więcej niż jedną linię. Ponieważ tylko 1 nie pełny wiersz tekstu, TextView nie wypełni układu w poziomie
peter.bartos

Możesz tego uniknąć, ustawiając android TextView: layout_width = "fill_parent"
peter.bartos

2
Nie należy tego mylić android:layout_gravity. No! :)
Joshua Pinter


21

użyj w ten sposób w 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

Możesz użyć następujących:

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

Aby można było użyć właściwości „center”, układ musi być względny.


5

Dodanie android:gravity="center"do TextView załatwi sprawę (być układem nadrzędnym Relative/Linear)!

Należy również unikać używania dp do określania rozmiaru czcionki. Zamiast tego użyj sp.


3

dodaj layout_gravity i gravity z wartością środkową w TextView

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


1
android:layout_gravity="center"

lub

android:gravity="center"

oba działają dla mnie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.