如何修复数字TextView Android的textDirection



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

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

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

请建议正确的解决方法。

将您的TextViewtextDirection='ltr'layout_width='wrap_content'放在LinearLayoutlayout_width='match_parent'gravity='start'gravity='end'之间。这使您的文本视图保持正确,因为方向固定,而重力将通过电话系统语言改变。

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

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

谢谢你的帮助!

最新更新