如何修复数字 TextView Android 的 textDirection?

How to fix textDirection for numeric TextView Android?

我有一个需要显示数字代码的文本视图,例如:1234

当语言是任何从左到右的语言(如英语)时,这都可以正常工作。但是当我切换到像阿拉伯语这样从右到左的语言时,文本字段开始显示 4321。解决此问题的方法是 textDirection='ltr (or locale)',但这也会将文本视图重力更改为另一个方向。

有没有一种优雅的方法可以更改 textDirection 但不影响文本字段的引力?或者我是否必须进行代码检查并翻转重力或反转文本(如果是数字)。

请建议解决此问题的正确方法。

TextViewtextDirection='ltr'layout_width='wrap_content' 放在 LinearLayoutlayout_width='match_parent'gravity='start'gravity='end' 内. 这使您的 Textview 保持正确,因为方向固定,而重力将根据 phone 系统语言改变。

我终于想出了解决这个问题的正确方法,我在将文本放入 UI 之前使用 BidiFormatter 对其进行编码:

BidiFormatter.getInstance().bidi.unicodeWrap("1234")

感谢您的帮助!