Android - Center TextView Horizontally in LinearLayout

I have the following basic layout

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

It seems like the xml is correct but the text is aligned to the left. The textview takes up the entire width of the parent and the textview is set to be centered. Not sure what the problem is...

173592 次浏览

TextView中使用 android:gravity="center"而不是 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>

因为 TextView 填充了内部 LinearLayout 的 完整宽度,所以它已经位于 布局的水平中心。当您使用 android:layout_gravity时,它会将小部件作为一个整体放置在指定的重力范围内。与其放置整个小部件中心,不如将 内容放置在中心,这可以通过 android:gravity="center_horizontal"实现,并且可以删除 android:layout_gravity属性。

如果你设置 <TextView>在中心的 <Linearlayout>,然后首先把 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>

使用: android:layout_centerHorizontal="true"

它会把整个文本视图放在中间