2011-01-25 14 views
60

quiero que se parezca a esto:Cómo centrar un texto de dos líneas en un TextView en Android?

| two | 
| lines | 

Aquí es el diseño actual, no funciona en absoluto.

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

¿Alguna idea? Gracias!

Respuesta

184

Si lo que desea es centrarla (estoy suponiendo que el \n está trabajando para dividir las líneas) , simplemente agregue android:gravity="center_horizontal" en lugar de layout_gravity.
El uso de la gravedad del diseño mueve la vista de texto real, utilizando la gravedad afecta el contenido del TextView.

1

Creo que hay que hacerlo desde 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> 

continuación:

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

Se puede utilizar:

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

Añadir propiedad

android:lines="2" 

donde 2 es ninguna de las líneas puede establecer esta no como su requerimiento

+0

esto no configura el TextView centrado, solo lo fuerza a tener dos líneas. Aún así, esta respuesta no es tan mala, necesita ser downvoted. – Shishdem

+0

no resuelve nada -.- –

+0

No tendrá ningún impacto según lo solicitado. La alineación no estará centrada. – deva11

8

tuvo que añadir tanto gravity y layout_gravity a alinee ambos TextView y su contenido

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

si su anchura es wrap_content, hay que establecer la gravedad y layout_gravity tanto como "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"/> 

Sin embargo, si su ancho es "match_parent, usted sólo tiene que establecer la gravedad como 'center_horizontal'

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

Espero que ayude!

+0

Gracias. Esto funciona. Establecer tanto 'gravedad' como 'layout_gravity' me sirvió de algo. –

Cuestiones relacionadas