RTL密码字段Android

Ab_*_*Ab_ 6 android right-to-left

我在这篇文章中尝试了一切:Android RTL密码字段?

但没有任何帮助我.

问题:当用户的语言环境是阿拉伯语(RTL)时,我希望他在用他的语言输入密码时感觉很舒服.但是,当我分配inputTypetextPassword,无论我分配什么,它都不起作用并强制它进入LTR.

我试过分配gravity,textAlignment,layoutDirection,我甚至已经尝试过编程,但没有什么工作.

除了PASSWORD之外,所有其他文本字段都可以正常工作.这个错误/问题有解决方法吗?

Abo*_*odz 6

我在这里说服你停止寻找答案.真的很少有人使用阿拉伯字符设置密码(有时甚至是UserName).这是因为大多数密码系统在处理非拉丁字符方面非常糟糕.这些系统通常假定密码是ASCII而不是Unicode,特别是旧的DB系统.此外,请记住,有时用户会发现将键盘切换到另一种语言布局有些困难.这个问题曾经发生在很久以前的Windows登录中.

这些历史和长期兼容性问题阻碍了大多数人在密码中使用非拉丁字符.我已经活得足够多,并且处理了很多不同的人(真的很多人......没有电脑技能的人,使用阿拉伯语界面设备的人,英语为零的人等等),我还没有听过有人说过他的阿拉伯字符密码......不是在90年代后期甚至不是这个时代.由于大多数用拉丁字符设置密码,我相信所有登录界面都应该在LTR中"布局"并且也保持对齐.

另一个密码字段将文本转换为星号,因此从右到左开始和从左到右开始没有区别(遗憾地标记下来不支持对齐,所以请点击运行):

<p align="right">******</p>
<p align="left">******</p>
Run Code Online (Sandbox Code Playgroud)

更多技术信息在这里


小智 6

您可以通过在Edittext XML文件中设置一个属性,根据您的语言(阿拉伯语,乌尔都语或英语)将文本从左到右(LTR)或从右到左(RTL)设置为:

android:inputType="textPassword"
android:textAlignment="viewStart"
Run Code Online (Sandbox Code Playgroud)