Страницы

Поиск по вопросам

пятница, 3 января 2020 г.

Android. Писать текст справа налево

#android


Никак не могу решить проблему с "писать текст справа налево". Такая штука мне  нужна
для бинарного калькулятора, который нужен на одном из экранов) Видел такой тэг rtl
- но он не работает. На английской части стека все говорят про gravity="right", но
и это не помогло. Я в шаге от частного самодельного решения этой проблемы) Подскажите,
как писать текст в TextEdit справа налево!? 

P/S/ EditText обернут в Constarint Layout если это имеет значение.
    


Ответы

Ответ 1



Используйте следующее решение: xml: android:textDirection="rtl" android:gravity="right" Программно: textview.setTextDirection(View.TEXT_DIRECTION_RTL); или textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL); начина с API 17+ Добавлять текст в начало textView: textview.setText(number + textView.getText());

Ответ 2



Решил добавить свой итогвый вариант на Kotlin. Этот код позволяет писать текст справа на лево, что каждый следующий символ появляется слева от курсора. Обычный вариант с textdirection не дает эффекта "арабского письма" editText.addTextChangedListener(object : TextWatcher { override fun afterTextChanged(s: Editable) { } override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) { } override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { // set cursor editText.setSelection(start) } })

Комментариев нет:

Отправить комментарий