我有一个文本视图,需要显示一个数字代码,例如:1234
。
当语言是像英语这样从左到右的任何语言时,这都很好。但当我切换到从右到左的语言(如阿拉伯语(时,文本字段开始显示4321
。解决此问题的方法是使用textDirection='ltr (or locale)'
,但这也会将文本视图的重力更改为其他方向。
有没有一种优雅的方法可以更改textDirection
,但不影响文本字段的重力?或者我必须做一个代码检查并翻转重力,或者如果文本是数字的,则反转文本。
请建议正确的解决方法。
将您的TextView
与textDirection='ltr'
和layout_width='wrap_content'
放在LinearLayout
与layout_width='match_parent'
与gravity='start'
或gravity='end'
之间。这使您的文本视图保持正确,因为方向固定,而重力将通过电话系统语言改变。
我终于找到了解决这个问题的正确方法,在将文本放入UI之前,我使用BidiFormatter
对其进行了编码:
BidiFormatter.getInstance().bidi.unicodeWrap("1234")
谢谢你的帮助!