如何在android textview中为每一行设置重力?

时间:2016-07-05 12:02:05

标签: android textview right-to-left left-to-right

我有一个包含英语和波斯语的字符串。我想如果一行以Persian charachter开头,那么这一行在文本视图中从右到左显示,如果一行以英文字符开头,则该行从左到右排列。

注意:我想在文本视图中为每一行设置重力/方向。

如何在android textview中实现它。

这是我的textview xml代码:

    <TextView
        android:id="@+id/textViewContent"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentRight="true"
        android:autoLink="web"
        android:layoutDirection="rtl"
        android:gravity="start"
        android:layout_gravity="start"
        android:text="My Text"
        android:textColor="#000"
        android:textDirection="rtl" />

5 个答案:

答案 0 :(得分:4)

您要找的是 ANY_RTL 要添加到文字视图中的文字方向

    android:textDirection="anyRtl"

你会得到这样的结果:

enter image description here

考虑到它是API17 +解决方案。

答案 1 :(得分:1)

您可以使用TextView的属性来对齐文本内容。

将布局中的文本对齐

android:gravity="start"

在布局中将文本右对齐。

android:gravity="end"

答案 2 :(得分:0)

使用gravity属性。

而不是左/右使用开始,为rtl支持添加了。

https://developer.android.com/reference/android/widget/TextView.html#attr_android:gravity

答案 3 :(得分:0)

像这样使用

           if (textview.contentEquals("persian")) {
                textview.setGravity(Gravity.START);
            } else if (textview.contentEquals("english")) {
                textview.setGravity(Gravity.END);
            }

答案 4 :(得分:0)

我猜你可以尝试使用spannable和Alignment属性:

Alignment.ALIGN_OPPOSITE(右)和Alignment.ALIGN_NORMAL(左)。

检查此答案:Multiple alignment in TextView?