RTL 密码字段 Android

RTL password fields Android

我已经尝试了这个 post 中的所有方法:Android RTL password fields?

但没有任何帮助。

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

我试过分配 gravitytextAlignmentlayoutDirection,我什至以编程方式尝试过,但没有任何效果。

除了 PASSWORD 之外,所有其他文本字段都可以正常工作。这个 bug/problem 有解决方法吗?

您尝试过以下方法吗?:

XML:

android:ellipsize="end"

Java:

textview.setTextDirection(View.TEXT_DIRECTION_RTL);

textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL);

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

这些历史和长期的兼容性问题阻碍了大多数人在他们的密码中使用非拉丁字符。我已经活够了,和很多不同的人打交道(真的很多人……计算机技能为零的人,使用阿拉伯语界面设备的人,英语为零的人……等等),我仍然从未听说过有人设​​置他的阿拉伯字符密码……在 90 年代末甚至在这个时代都没有。由于大多数人将他们的密码设置为拉丁字符,我认为所有登录界面在 LTR 中都应该是 'layouted' 并且左对齐。

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

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

More technical info here

您可以根据您的语言(阿拉伯语、乌尔都语或英语)设置从左到右 (LTR) 或从右到左 (RTL) 的文本对齐方式,只需在 Edittext [=13] 中设置一个 属性 =] 文件:

android:inputType="textPassword"
android:textAlignment="viewStart"