在安卓中使文本居中对齐

171

我知道这听起来很简单。 我需要将一个文本置于中心,但是当文本太长时,它需要放在下面,但仍然要在我的xml中居中对齐。

这是我的代码:

 <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/showdescriptioncontenttitle"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:layout_centerHorizontal="true"
>
    <TextView 
        android:id="@+id/showdescriptiontitle"
        android:text="Title"
        android:textSize="35dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
</LinearLayout>

我加了paddingTop和Bottom因为我需要一些空间。 PS:我的代码比较大,它在一个RelativeLayout中。


这里您没有使用任何文本样式。 - Dinith
11个回答

436

还需要在TextView中设置android:gravity参数为center

为了测试不同布局参数的效果,建议为每个元素使用不同的背景颜色,这样您就可以看到布局如何随着重力、布局重力或其他参数而改变。


谢谢,它起作用了,只需要一些时间来验证你的答案! - Tsunaze
是的,这是正确的。但我认为只有当TextView有多于一行的文本时才会发生这种情况。因为只有一行不完整的文本,TextView不会横向填充布局。 - peter.bartos
您可以通过设置TextView的android:layout_width="fill_parent"来避免这种情况。 - peter.bartos
2
不要与 android:layout_gravity 混淆。哎呀! :) - Joshua Pinter

33

使用这种方式

txt.setGravity(Gravity.CENTER);

25

在 xml 中使用这种方式

   <TextView
        android:id="@+id/myText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Time is precious, so love now."
        android:gravity="center"
        android:textSize="30dp"
        android:textColor="#fff"
        />

9
您可以使用以下方法:
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/showdescriptioncontenttitle"
    android:paddingTop="10dp"
    android:paddingBottom="10dp">

 <TextView
        android:id="@+id/textview1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Your text"
        android:typeface="serif" />
</LinearLayout>

布局需要设置为相对定位才能使用“center”属性。

5
在TextView中添加android:gravity="center",可以使其居中显示(前提是父布局为Relative/Linear)!此外,应避免使用dp作为字体大小单位,应改为使用sp。

5

只需添加这两行代码;

android:gravity="center_horizontal"
android:textAlignment="center"

3

在TextView上添加layout_gravity和gravity属性,并设置为中心对齐。

<TextView
    android:text="welcome text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    />

1

或者看看这个,它可以帮助一次性对齐所有元素。

 <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/showdescriptioncontenttitle"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:layout_gravity="center"
    android:gravity="center_horizontal"
>
    <TextView 
        android:id="@+id/showdescriptiontitle"
        android:text="Title"
        android:textSize="35dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
</LinearLayout>

1
android:layout_gravity="center"

或者

android:gravity="center"

对我来说两者都可以。


0

你可以通过添加这些代码轻松完成此操作

android:layout_width="match_parent"
android:gravity="center"
android:textAlignment="center"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接