studio programacion herramientas fundamentos con avanzado aplicaciones android android-layout android-linearlayout layout-gravity

programacion - manual de android en pdf



Android: Centre TextView horizontalmente en LinearLayout (4)

Lo que sucede es que, dado que TextView está ocupando todo el ancho del LinearLayout interno, 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 de widgets, lo que realmente intenta hacer es colocar el contenido en el centro, lo que se puede lograr con android:gravity="center_horizontal" y el atributo android:layout_gravity se puede eliminar.

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 elemento principal y la vista de texto está configurada para centrarse. No estoy seguro de cual es el problema...


Si configura <TextView> en el centro en <Linearlayout> , primero coloque android:layout_width="fill_parent" obligatorio
No es necesario 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 .


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