Android混合语言文本-带有RTL和LTR文本的字符串上的BidiForMatter

2022-07-04 00:00:00 locale android java bidirectional bidi

我有一个ListView自定义View,其中我有一个TextView

 <TextView
     android:id="@+id/textViewItemTitle"
     android:layout_width="0dp"
     android:layout_weight="1"
     android:layout_height="wrap_content"
     android:gravity="right|center_horizontal"
     android:text="title" />

TextView包含希伯来语文本。

 if(!bidi.isRtl(event)){
     event = bidi.unicodeWrap(event);
 }

 holder.title.setText(String.format("%s  %s  %s", bidi.unicodeWrap(item.getStartTimeNoDate().trim()), event,
 bidi.unicodeWrap(item.getDuration().trim())));

其中第一个参数是time hh:mm:ss,第二个(事件)是希伯来语字符串,第三个参数与第一个参数类似。

问题:有时事件字符串包含希伯来语和英语的混合文本,如abc-אבג,则所有文本的行为方式类似于重力向左(而不是像我在文本视图中定义的那样向右),我的意思是缩进到左侧。

如何解决?


解决方案

尝试添加到您的文本视图:

android:textDirection="anyRtl"

有关更多阅读内容: http://developer.android.com/reference/android/view/View.html#attr_android:textDirection

相关文章