Как исправить textDirection для numeri c TextView Android? - PullRequest
0 голосов
/ 14 июля 2020

У меня есть текстовое представление, которое должно отображать числовой код c, например: 1234.

Это отлично работает, когда язык - любой язык слева направо, например, Engli sh. Но когда я переключаюсь на язык справа налево, например араби c, текстовое поле начинает отображать 4321. Способ исправить это - textDirection='ltr (or locale)', но это также изменяет гравитацию текстового представления в другом направлении.

Есть ли элегантный способ изменить textDirection, но не повлиять на гравитацию текстового поля ? Или мне нужно выполнить проверку кода и также перевернуть гравитацию или перевернуть текст, если его число c.

Пожалуйста, предложите правильный способ исправить это.

Ответы [ 2 ]

0 голосов
/ 16 июля 2020

Наконец-то я нашел правильный способ решить эту проблему. Я использовал BidiFormatter для кодирования текста перед его вводом в пользовательский интерфейс:

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

Спасибо за помощь!

0 голосов
/ 14 июля 2020

Поместите TextView с textDirection='ltr' и layout_width='wrap_content' внутри LinearLayout с layout_width='match_parent' с gravity='start' или, может быть, gravity='end'. Благодаря этому ваше текстовое изображение останется правильным из-за фиксированного направления, в то время как сила тяжести будет меняться в зависимости от языка телефонной системы.

...