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


78

我想让它看起来像这样:

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

任何的想法?谢谢!

Answers:


218

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


19

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

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

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

希望能帮助到你!


谢谢。这可行。设置'gravity'和'layout_gravity'对我来说很成功。
Prasanna Ramaswamy

2

您可以使用:

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

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"));


-3

新增物业

android:lines="2"

其中2是行数,您可以将no设置为您的要求


1
这不会将TextView设置为居中,只会强制其具有两行。尽管如此,这个答案还算不错,它需要被否决。
Shishdem,2015年

它不会按要求产生任何影响。对齐将不会居中。
deva11
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.