Поля пароля RTL для Android?

Похоже, что если у вас есть EditText на Android с

android:inputType="textPassword" или android:password="true

на них текст справа налево НЕ отображается справа налево (остается слева направо).

Однако без обозначений паролей в тексте появляется RTL.

Это известная проблема или есть обходной путь?

Ответы

Ответ 1

Для 17+ (4.2.x +) вы можете использовать textAlignment

Android: TextAlignment = "viewStart"

Ответ 2

Единственное решение, которое я нашел, - это установить гравитацию программно на LEFT или RIGHT после установки типа ввода.

Ответ 3

В моем случае проблема была просто решена путем изменения layout_width на wrap_content.

Ответ 4

Если вы помещаете inputType = textPassword или устанавливаете метод PasswordTransformation в EditText, направление текста принимается как LTR. Это означает, что RTL для пароля не рекомендуется. Вам нужно написать собственный TextView, чтобы переопределить это поведение.

Фрагмент кода из источника android для TextView.

// PasswordTransformationMethod always have LTR text direction heuristics returned by
        // getTextDirectionHeuristic, needs reset
        mTextDir = getTextDirectionHeuristic();


protected TextDirectionHeuristic getTextDirectionHeuristic() {
        if (hasPasswordTransformationMethod()) {
            // passwords fields should be LTR
            return TextDirectionHeuristics.LTR;
        }