背景 TextView总是有RTL(从右到左)语言的问题。 由于我只知道如何阅读希伯来文(除了英文),所以我会谈论它的问题: 文本alignment(我不是在说重力)。 作为一种RTL语言,希伯来语是从右向左(与英文相反)。 为了展示它是多么令人讨厌,想象一下,不要展示“Hello world”。 你通常会得到“你好世界”。 如果只有一个句子,可以很容易地解决这个问题,但是如果有多个标点符号,这个问题就会变得更加困难。 元音位置。 希伯来语不需要元音以阅读文本,但是有时在没有元音的情况下阅读是非常困难的(尤其是圣经)。 对于元音来说,希伯来文有所谓的“NIKUD”,实际上就像字母里的圆点。 在Android的问题是,他们通常位于错误的位置。 为了展示它是多么令人讨厌,想象一下,不要展示“Hello world”。 你通常会得到“.eHlol owrld”。 即使你试图解决这个问题(把元音总是一个字符放在当前字符之后),这个字母中的位置是不正确的(假设“你好”中的“e”会像“H”例如)。 只有在4.2版本( 在这里阅读“Native RTL支持”),Google已经修复了所有希伯来语相关的问题(或者至less似乎是这样)。 问题 希伯来语的问题已经导致每个以色列航空公司和每个定制ROM制造商都有自己的解决scheme来解决不同的问题,这使得实际上不可能在4.2版本的设备上处理RTL文本。 如果文本包含希伯来文和英文字母,事情会变得更加令人沮丧。 我试过了 我已经阅读了很多关于这些问题的网站,我已经尝试了很多种解决scheme,没有一个能够解决所有设备上的问题: 有些人build议把字符'\ u200F'(或'\ u202D')放在文本的结尾/开始/结尾处。 有人build议使用Html.fromHtml()方法,并在那里放些特别的东西。 有人甚至build议使用WebView来代替(也可以使用WebSettings.setDefaultTextEncodingName() )。 这个问题 这个问题有没有确切的解决办法? 我认为最好的事情是,因为Android 4.2解决了这个问题,Android是开源的,我们应该把它的TextView导入到我们可以使用的库中,但是Google还没有提供这样的库。