2011-01-25 5 views
60

Voglio lasciare che appare così:Come centrare un testo a due righe in un TextView su Android?

| two | 
| lines | 

Ecco il layout corrente, non funziona affatto.

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

Qualche idea? Grazie!

risposta

184

Se si desidera solo per centrarlo (sto assumendo la \n sta lavorando per dividere le righe) , aggiungi semplicemente android:gravity="center_horizontal" anziché layout_gravity.
L'uso della gravità del layout sposta l'attuale TextView, che utilizza la gravità per il contenuto di TextView.

1

Penso che devi farlo da 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> 

Poi:

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

È possibile utilizzare:

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

Aggiungere proprietà

android:lines="2" 

dove 2 c'è di linee è possibile impostare questo non è come vostro requirment

+0

questo non imposta il TextView centrato, lo forza solo per avere due linee. Tuttavia, questa risposta non è così male che deve essere downvoted. – Shishdem

+0

non risolve nulla -.- –

+0

Non avrà alcun impatto come richiesto. L'allineamento non sarà centrato. – deva11

8

dovuto aggiungere sia gravity e layout_gravity a allineare entrambi TextView e il suo contenuto

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

se la larghezza è wrap_content, è necessario impostare la gravità e layout_gravity sia come "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"/> 

Tuttavia, se la larghezza è "match_parent, si avrà solo impostare gravità come 'center_horizontal'

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

Spero che aiuti!

+0

Grazie. Questo funziona. Impostare sia 'gravità' che 'layout_gravity' ha fatto il trucco per me. –