Android – 在LinearLayout中水平放置Center TextView

我有以下基本布局

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

它看起来像XML是正确的,但文本是左alignment。 textview占据了父级的整个宽度,textview被设置为居中。 不确定是什么问题…

发生什么事情是因为TextView正在填充内部LinearLayout的整个宽度,它已经在布局的水平中心。 当你使用android:layout_gravityandroid:layout_gravity widget作为一个整体放在指定的gravity中。 而不是放置整个小部件中心,你真正要做的是把内容放置在可以用android:gravity="center_horizontal"完成的中心, android: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> 

如果在<Linearlayout>中间设置<TextView> ,则首先将android:layout_width="fill_parent"强制
不需要使用任何其他重力

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

TextView使用android:gravity="center"而不是layout_gravity