如何在 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_horizontal”
<TextView
android:layout_
android:layout_
android:text="two\nlines"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"/>
但是,如果您的宽度为“match_parent”,则只需将重力设置为“center_horizontal”
<TextView
android:layout_
android:layout_
android:text="two\nlines"
android:gravity="center_horizontal"/>
希望对你有帮助!
【讨论】:
谢谢。这行得通。设置 'gravity' 和 'layout_gravity' 对我有用。 这应该是公认的答案,因为选择的答案只对换行有效。谢谢!【参考方案3】:必须同时添加 gravity
和 layout_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 上的 TextView 中将两行文本居中?