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