如何防止希伯来语和阿拉伯语自动从右向左的文本方向?

时间:2015-01-12 20:44:55

标签: android android-layout localization right-to-left

在TextView中,当文本以希伯来字母开头时,整个文本以RTL模式显示。

问题在于,在我的情况下,只有第一个单词是希伯来语,而整个句子是英语,所以不是

 דני went to school

用户看到

                                                  went to school דני

(第一个单词在句子的末尾,当用英语阅读时)

如何防止这种情况发生并强制文本从左侧开始?

2 个答案:

答案 0 :(得分:21)

Unicode字符本质上是LTR或RTL。在大多数情况下,整个文本从第一个字符开始。希伯来字符是RTL。

请参阅http://en.wikipedia.org/wiki/Bi-directional_text

您的文字以RTL字符开头,因此被视为RTL。您可以使用left-to-right mark"\u200E"

强制将其视为LTR

使用此特殊字符启动文本将告诉布局系统整个文本的显式方向。但是,RTL部分仍将被视为这样,因为字符是明确的RTL。

例如,数字不是强指标,因此不会影响它们放置的部分的方向。因此,不同方向的部分之间的数字可能是个问题,可能需要明确指示。 / p>

答案 1 :(得分:0)

作为替代,您可以使用 android:textDirection="locale",因此对于具有 LTR 区域设置的设备,任何带有 RTL 字符的字符串都将正确显示。