TextView不会水平居中

时间:2014-05-31 21:10:49

标签: android layout

我的布局如下:

<TextView
    android:id="@+id/display_city"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/pollenType"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/get_pollen_index"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_marginTop="51dp"
    android:textSize="40sp" />

正如您所知,Philadelphia, PA是左对齐的。无论我改变什么,无论是水平居中还是垂直居中,它都保持左对齐。

我尝试通过XML和图形用户界面更改布局。在图形用户界面中,它确实是“居中的”,但它仍然是非居中的。我的布局位置在我的所有文本视图中都是一致的,所以我不确定为什么这个特定的TextView没有居中。

enter image description here

4 个答案:

答案 0 :(得分:2)

两个选项......

一个:提供TextView android:layout_width="wrap_content"

二:保留android:layout_width="match_parent"并使用android:gravity="center_horizontal"

layout_gravity定义其父级视图的重力。由于match_parent,您的textView已经占据了整个宽度,因此将其水平居中放在其父级内部不会做任何事情。

另一方面,

gravity定义了内容的重力

答案 1 :(得分:0)

您告诉display_city TextView与屏幕一样宽。

android:layout_width="match_parent"

但是,默认情况下,其文本左对齐。这就是为什么它看起来像这样。

您有两种选择:

  1. 将宽度保持为match_parent并将文本置于TextView内(使用gravity)。
  2. 将宽度设置为wrap_content,并将视图置于其父级内(使用layout_gravity)。

答案 2 :(得分:0)

您可以使用gravity xml属性将文本居中:

android:gravity="center"

答案 3 :(得分:0)

您的宽度等于match_parent,因此TextView的边缘已经触及父视图的边缘。您应该将TextView中的文字置于android:gravity="center"。{/ p>中心