2011-01-25 7 views
60

chcę niech to wygląda następująco:Jak wyśrodkować tekst dwuwierszowy w TextView na Androida?

| two | 
| lines | 

Oto obecny układ nie działa w ogóle.

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="two\nlines" 
     android:layout_gravity="center_vertical" 
     android:layout_centerInParent="true"/> 
</RelativeLayout> 

Masz pomysł? Dzięki!

Odpowiedz

184

Jeśli chcesz po prostu go Center (Ja zakładając \n pracuje podzielić linie) , po prostu dodaj android:gravity="center_horizontal" zamiast layout_gravity.
Korzystanie układu ciężkości przesuwa rzeczywiste TextView za pomocą grawitacji wpływa na zawartość z TextView.

1

myślę, że trzeba to zrobić z Java:

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical"> 
    <TextView 
     android:id="@+id/the_text_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_centerInParent="true"/> 
</RelativeLayout> 

Następnie:

TextView tv = (TextView) findViewById(R.id.the_text_view); 
tv.setText(Html.fromHtml("two<br/>lines")); 
2

Można użyć:

TextView tv = (TextView) findViewById(R.id.the_text_view); 
tv.setText(Html.fromHtml("two"+"\n"+"lines")); 
-3

Dodaj nieruchomość

android:lines="2" 

gdzie 2 bez linii to można to ustawić nie jako requirment

+0

to nie ustawia TextView skoncentrowany, to tylko zmusza go mieć dwie linie. Jednak ta odpowiedź nie jest tak zła, że ​​należy ją obniżyć. – Shishdem

+0

niczego -.- –

+0

nie rozwiąże to nie będzie żadnego wpływu na żądanie. Wyrównanie nie zostanie wyśrodkowane. – deva11

8

musiałem dodać zarówno gravity i layout_gravity do wyrównać zarówno TextView i jej zawartości

android:gravity="center_horizontal" 
android:layout_gravity="center_horizontal" 
2

jeśli szerokość jest wrap_content, trzeba ustawić grawitację i layout_gravity zarówno jako „center_horizontal”

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="two\nlines" 
    android:layout_gravity="center_horizontal" 
    android:gravity="center_horizontal"/> 

Jednakże, jeśli szerokość jest „match_parent, trzeba będzie tylko ustawić grawitację jako«center_horizontal»

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="two\nlines" 
    android:gravity="center_horizontal"/> 

Mam nadzieję, że pomoże!

+0

Dzięki. To działa. Ustawienie "gravity" i "layout_gravity" zrobiło dla mnie trudność. –

Powiązane problemy