在Android的TextView中对齐文本

8

如何使TextView两端对齐?有没有解决方法?我在大部分论坛中搜索了,但是没有找到答案。请帮助我。


这里有一个想法,应该可以解决问题 https://dev59.com/tV3Va4cB1Zd3GeqPBIA9#9755219 - Mathew Kurian
3个回答

15

已更新

我们创建了一个简单的类来实现这个功能。目前有两种方法可以达到您想要的效果。两种方法都无需WEBVIEW并且支持SPANABLES

: https://github.com/bluejamesbond/TextJustify-Android

支持: Android 2.0 至 5.X

设置

// Please visit Github for latest setup instructions.

截图

Comparison.png


2
我使用了这个库,但它对我不起作用。 - fargath
1
@fargath: 你试过这个了吗?((TextView)findViewById(R.id.textview)).setText(input); TextViewJustify.justifyText(((TextView)findViewById(R.id.textview)), 305f); //从一个小数字开始,比如150f,并逐步增加宽度以获取确切的宽度。 //我还没有解决这个问题。在这种情况下,305f 最好用。 - Mathew Kurian
1
库无法正常工作。 - Jacek Kwiecień
@Xylian,请在我的Github存储库中打开一个问题,然后我们可以在那里跟进。 - Mathew Kurian
@mk1,我在仓库上发布了一个问题。当您将TextViewEx放入ScrollView中时,它会在底部截断一些文本,就好像ScrollView无法正确计算高度一样。 - RonEskinder
@RonEskinder 这些问题已经被修复。 - Mathew Kurian

12

很抱歉,Android不支持文本对齐。您可以使用android:gravity属性将文本左对齐、右对齐或居中等,但无法实现文本对齐。我想唯一的选择是使用WebView显示文本,然后使用CSS对文本进行对齐。


不幸的是,CSS文本对齐仍然很困难。虽然最新规范有所改进,但仍存在一些重大问题,例如Webkit无法打破长URL。 - mahemoff

1
<RelativeLayout android:id="@+id/RelativeLayout01"
    android:layout_height="wrap_content" android:layout_width="fill_parent">

    <TextView android:id="@+id/TextView2" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="I'm TextView- Left" android:layout_alignParentLeft="true">
    </TextView>

    <TextView android:id="@+id/TextView1" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="I'm TextView- Right" android:layout_alignParentRight="true">
    </TextView>


</RelativeLayout>

截图:

alt text

希望这能有所帮助。如果您遇到任何困难,请回信告知。- 谢谢

只要你要处理的列不太多,这种方法就可以很好地工作。 - Andi Jay
这不是文字对齐,只是当您有多个列时的解决方法。但如果只有一列呢? - vandus
你想在这里解释什么?请提供在Android中不使用webView实现文本对齐的任何解决方案。 - Prateek Sharma

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