2016-08-02 6 views
4

Я пробовал все, в этом посте: Android RTL password fields?RTL пароль поля Android

Но ничего не помогло.

Задача: Когда пользовательский язык является арабским (RTL), я хочу, чтобы он чувствовал себя комфортно, набирая свой пароль на своем языке. Но, когда я назначаю inputType в textPassword, он не работает и заставляет его LTR независимо от того, что я назначаю.

Я пробовал присваивать gravity, textAlignment, layoutDirection, и я даже пробовал это программно, но ничего не работает.

Все остальные текстовые поля отлично работают, за исключением PASSWORD. Есть ли обходной путь для этой ошибки/проблемы?

ответ

6

Я здесь, чтобы убедить вас, чтобы остановить ищет ответ. На самом деле очень мало людей задают свой пароль с использованием арабского символа (иногда даже UserName). Это связано с тем, что большинство систем паролей очень плохо справляются с нелатинскими символами. Обычно эта система предполагает, что пароли находятся в ASCII, а не в Юникоде, особенно в старых системах БД. Кроме того, имейте в виду, что иногда пользователь с трудом переключает клавиатуру на другой язык. Эта проблема часто возникала в Windows Login уже давно.

Эти исторические и хронические проблемы совместимости препятствовали большинству людей использовать нелатинские символы в своих паролях. Я достаточно жил и занимался множеством разных людей (действительно много людей ... люди с нулевыми навыками работы с компьютером, люди, использующие устройства в арабском интерфейсе, люди с нулевым английским ... и т. Д.), Я до сих пор не слышал, его пароль на арабском языке ... не в конце 90-х, даже в эту эпоху. Поскольку большинство задает свой пароль в латинских символах, я считаю, что все интерфейсы входа должны быть «макетированы» в LTR, а также выравниваться влево.

Другое поле пароля, преобразующее текст в звезды, поэтому нет никакой разницы между пусками справа налево и начинается с левого на правое (грустно отмечаем вниз, чтобы поддерживать выравнивание, поэтому, пожалуйста, нажмите на пробег) :

<p align="right">******</p> 
 
<p align="left">******</p>

More technical info here

+0

Я уже заставлял пользователя вводить пароль на английском языке. Спасибо за объяснение ' –

+0

На данный момент это правильный ответ –

0

Пытались ли вы следующие ?:

XML:

android:ellipsize="end" 

Java:

textview.setTextDirection(View.TEXT_DIRECTION_RTL); 

или

textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL); 
+1

Нет, он по-прежнему не работает. –

1

Вы можете установить выравнивание текста слева направо (LTR) или справа налево (RTL) на основе языка (арабский, урду или английском языке) просто установив одно свойство в файл Edittext XML:

android:inputType="textPassword" 
android:textAlignment="viewStart" 
Смежные вопросы