从右到左-RTL密码字段Android



我已经尝试了这篇文章中的所有内容:Android RTL密码字段?

但什么也帮不了我。

问题:当用户的语言环境是阿拉伯语(RTL)时,我希望他能放心地用自己的语言输入密码。但是,当我将inputType分配给textPassword时,无论我分配什么,它都不起作用,并强制它为LTR。

我已经尝试过分配gravitytextAlignmentlayoutDirection,甚至还尝试过以编程方式进行分配,但都不起作用。

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

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

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

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

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

更多技术信息请点击此处

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

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

您尝试过以下操作吗?:

XML:

android:ellipsize="end"

Java:

textview.setTextDirection(View.TEXT_DIRECTION_RTL);

textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL);

相关内容

最新更新