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

Posted

技术标签:

【中文标题】如何在 Android 上的 TextView 中将两行文本居中?【英文标题】:How to center a two-line text in a TextView on Android? 【发布时间】:2011-06-14 22:38:33 【问题描述】:

我想让它看起来像这样:

|    two    |
|   lines   |

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

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

有什么想法吗? 谢谢!

【问题讨论】:

【参考方案1】:

我用:

android:gravity="center_horizontal"

将两行文本居中

【讨论】:

【参考方案2】:

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

<TextView
    android:layout_
    android:layout_
    android:text="two\nlines"
    android:layout_gravity="center_horizontal"
    android:gravity="center_horizontal"/>

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

<TextView
    android:layout_
    android:layout_
    android:text="two\nlines"
    android:gravity="center_horizontal"/>

希望对你有帮助!

【讨论】:

谢谢。这行得通。设置 'gravity' 和 'layout_gravity' 对我有用。 这应该是公认的答案,因为选择的答案只对换行有效。谢谢!【参考方案3】:

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

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

【讨论】:

【参考方案4】:

添加属性

android:lines="2"

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

【讨论】:

这不会设置 TextView 居中,它只会强制它有两行。尽管如此,这个答案还不错,需要被否决。 它不会按要求产生任何影响。对齐不会居中。【参考方案5】:

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

【讨论】:

【参考方案6】:

你可以使用:

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

【讨论】:

【参考方案7】:

我认为你必须从 Java 中完成:

<RelativeLayout
    android:layout_
    android:layout_
    android:gravity="center_vertical">
    <TextView
        android:id="@+id/the_text_view"
        android:layout_
        android:layout_
        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"));

【讨论】:

以上是关于如何在 Android 上的 TextView 中将两行文本居中?的主要内容,如果未能解决你的问题,请参考以下文章

在Android开发中如何移除EditText上的输入焦点

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

如何在 Android 上的 textview 或 imageview 上设置涟漪效果?

如何从小部件上的 TextView 获取默认文本大小?

如何删除 textView 上的顶部和底部填充?

Android上如何让TextView上的字体放大且自滚动