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.

Tsunaze
fuente
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.

peter.bartos
fuente
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
29

usar de esta manera

txt.setGravity(Gravity.CENTER);
bhargavkumar040
fuente
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"
        />
sakshi
fuente
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".

gsb
fuente
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.

Divya
fuente
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"
    />
Mubin
fuente
2

Simplemente agregue estas 2 líneas;

android:gravity="center_horizontal"
android:textAlignment="center"
Ramandeep Singh
fuente
1
android:layout_gravity="center"

o

android:gravity="center"

Ambos funcionan para mí.

Dinith
fuente