如何为 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+ 解决方案。
我有一个包含英语和波斯语的字符串。我想如果一行以波斯字符开头,则该行在文本视图中从右到左显示,如果一行以英文字符开头,则该行从左到右显示。
注意:我想在文本视图中为每一行设置 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+ 解决方案。