Android RTL密码字段?

看来,如果你有Android上的EditText与

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

字段,从右到左的文本不会从右到左(保持从左到右)。

但是,如果没有密码指示,文本将显示RTL。

这是一个已知的问题还是有解决方法?

Solutions Collecting From Web of "Android RTL密码字段?"

对于17+(4.2.x +),你可以使用textAlignment

机器人:textAlignment = “viewStart”

我find的唯一解决scheme是在设置inputType后,将重力编程设置为LEFT或RIGHT。

在我的情况下,通过将layout_width更改为wrap_content简单地解决了问题。

如果将inputType = textPassword或在EditText上设置passwordTransformation方法,文本方向将被视为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; }