Android – Centre TextView Horizontalmente en LinearLayout
Tengo el siguiente diseño básico
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/title_bar_background"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:textAppearance="?android:attr/textAppearanceLarge" android:padding="10dp" android:text="HELLO WORLD" /> </LinearLayout> <LinearLayout>
Parece que el xml es correcto, pero el texto está alineado a la izquierda. La vista de texto ocupa todo el ancho del padre y la vista de texto se establece para centrarse. No estoy seguro de cual es el problema…
- Vista personalizada que divide el diseño en diagonal con diferentes vistas secundarias
- Cómo centrar un textview dentro de un linearlayout
- Desplazamiento con varios ListViews para Android
- ¿Cómo puedo utilizar un compuesto dibujable en lugar de un LinearLayout que contiene un ImageView y un TextView
- Establecer un ancho máximo en un grupo de vistas
- Cómo alinear un elemento a la derecha en LinearLayout horizontal?
- Hacer dos LinearLayouts tiene el 50% de la pantalla cada uno sin usar layout_weight
- Centrar el contenido de TextView vertical y horizontalmente - LinearLayout
- Android LinearLayout: Añadir borde con sombra alrededor de un linearLayout
- LinearLayout no establece el atributo layout_height requerido
- ¿Cuáles son las diferencias entre LinearLayout, RelativeLayout y AbsoluteLayout?
- Dificultad con ScrollView y LinearLayout
- Alinear el botón a la parte inferior de la pantalla
Lo que está sucediendo es que desde el TextView se está llenando todo el ancho de la LinearLayout interno que ya está en el centro horizontal del diseño . Cuando usas android:layout_gravity
coloca el widget, como un todo, en la gravedad especificada. En lugar de colocar todo el centro del widget lo que realmente estás tratando de hacer es colocar el contenido en el centro que se puede lograr con android:gravity="center_horizontal"
y el atributo android:layout_gravity
puede ser eliminado.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/title_bar_background"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:textAppearance="?android:attr/textAppearanceLarge" android:padding="10dp" android:text="HELLO WORLD" /> </LinearLayout>
Si coloca <TextView>
en el centro en <Linearlayout>
, primero ponga android:layout_width="fill_parent"
obligatorio
No hay necesidad de usar ninguna otra gravedad
<LinearLayout android:layout_toRightOf="@+id/linear_profile" android:layout_height="wrap_content" android:layout_width="fill_parent" android:orientation="vertical" android:gravity="center_horizontal"> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="It's.hhhhhhhh...." android:textColor="@color/Black" /> </LinearLayout>
Usa android:gravity="center"
en TextView
en lugar de layout_gravity
.
- Google Espresso o Robotium
- ERROR: problemas de procesamiento No se encontraron las clases siguientes android.support.v7.internal.widget.ActionBarOverlayLayout