如何在Android上的TextView中居中两行文本?

时间:2011-01-25 02:54:27

标签: android text textview multiline text-alignment

我想让它看起来像这样:

|    two    |
|   lines   |

这是当前的布局,根本不起作用。

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="two\nlines"
        android:layout_gravity="center_vertical"
        android:layout_centerInParent="true"/>
</RelativeLayout>

有什么想法吗? 谢谢!

7 个答案:

答案 0 :(得分:205)

如果你只是想让它居中(我假设\n正在分割线条),只需添加android:gravity="center_horizontal"而不是layout_gravity
使用布局重力会移动实际的TextView,使用重力会影响TextView的内容

答案 1 :(得分:12)

必须同时添加gravitylayout_gravity以对齐TextView及其内容

android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"

答案 2 :(得分:3)

如果你的宽度是wrap_content,你必须将gravity和layout_gravity都设置为“center_horizo​​ntal”

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="two\nlines"
    android:layout_gravity="center_horizontal"
    android:gravity="center_horizontal"/>

但是,如果您的宽度为“match_parent”,则只需将重力设置为“center_horizo​​ntal”

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="two\nlines"
    android:gravity="center_horizontal"/>

希望它有所帮助!

答案 3 :(得分:2)

您可以使用:

TextView tv = (TextView) findViewById(R.id.the_text_view);
tv.setText(Html.fromHtml("two"+"\n"+"lines"));

答案 4 :(得分:1)

我认为你必须从Java做到这一点:

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical">
    <TextView
        android:id="@+id/the_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_centerInParent="true"/>
</RelativeLayout>

然后:

TextView tv = (TextView) findViewById(R.id.the_text_view);
tv.setText(Html.fromHtml("two<br/>lines"));

答案 5 :(得分:0)

我用:

main

以两行文字为中心

答案 6 :(得分:-2)

添加属性

android:lines="2"

其中2不是行,你可以设置这个不作为你的要求