如何为 android 文本视图中的每一行设置引力?

How to set gravity for each line in android textview?

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

注意:我想在文本视图中为每一行设置 gravity/direction。

如何在androidtextview中实现。

这是我的文本视图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" />

使用重力属性。

而不是 left/right 使用 start,这是为 rtl 支持添加的。

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

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

在布局中将文本左对齐

android:gravity="start"

在布局中将文本右对齐。

android:gravity="end"

这样使用

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

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

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

检查这个答案:Multiple alignment in TextView?

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

    android:textDirection="anyRtl"

你会得到这样的结果:

认为它是 API17+ 解决方案。