alinear el centro de texto con android


149

Sé que suena fácil. Necesito poner un texto en el centro, pero cuando el texto es demasiado largo, debe ir debajo, pero aún alinearse en el centro de mi xml.

Aquí está mi código:

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

Puse paddingTop y Bottom porque necesito algo de espacio. PD: mi código es más grande; Está en un diseño relativo.


Aquí no
usaste

Respuestas:


380

Establezca también el android:gravityparámetro en TextViewa center.

Para probar los efectos de diferentes parámetros de diseño, recomiendo usar diferentes colores de fondo para cada elemento, para que pueda ver cómo cambia su diseño con parámetros como gravedad, diseño_gravedad u otros.


Gracias, funcionó, ¡solo necesito algo de tiempo para validar su respuesta!
Tsunaze

Sí, eso es verdad. Pero creo que solo si TextView tiene más de una línea. Porque con solo 1 línea de texto no completa, TextView no llenará el diseño horizontalmente
peter.bartos

Puede evitar esto configurando el Android de TextView: layout_width = "fill_parent"
peter.bartos

2
No debe confundirse con android:layout_gravity. Doh! :)
Joshua Pinter


21

usar de esta manera en 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

Puedes usar lo siguiente:

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

El diseño debe ser relativo para que se use la propiedad "centro".


5

¡Agregar android:gravity="center"su TextView hará el truco (sea el diseño principal Relative/Linear)!

Además, debe evitar usar dp para el tamaño de fuente. Use sp en su lugar.


3

agregue layout_gravity y gravity con el valor central en TextView

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

2

Simplemente agregue estas 2 líneas;

android:gravity="center_horizontal"
android:textAlignment="center"

1
android:layout_gravity="center"

o

android:gravity="center"

Ambos funcionan para mí.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.