android – EditText中的双光标,用于输入类型编号/电话(RTL阿拉伯语)

我有一个EditText设置为重力右,所以如果语言是阿拉伯语,文本从右边开始.

注意:我的应用程序支持RTL,我没有为EditText设置TextDirection,因为它会遇到同样的问题.设置为Right的Gravity可以完美地完成工作.我只有在将InputType设置为Number或Phone时才会出现问题.

如果InputType设置为number / phone,则在文本的开头和结尾有双光标,这有点令人困惑.

为了证明这一点,我有两个EditText,其中InputType Text和Number,Gravity设置为Right.我的应用程序支持RTL,我的手机现在设置为阿拉伯语

表现

android:supportsRtl="true"

XML

 <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="text"
            android:inputType="text"
            android:lines="1"
            android:maxLines="1"
            android:gravity="right"
            />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/phone"
            android:inputType="number"
            android:lines="1"
            android:maxLines="1"
            android:gravity="right"
            />

以下是具有InputType Number的第二个EditText的行为的屏幕截图.

关于如何摆脱双光标的任何指针?或任何替代方案.

谢谢
[R

《android – EditText中的双光标,用于输入类型编号/电话(RTL阿拉伯语)》

最佳答案 编辑文本不知道你要按下的下一个字符是数字还是字母,所以如果是字母,它会放置最左边的字符,而最右边的字符则是数字(很可能你知道只是确定) .

如果你换成英语,它就会消失.

我认为这是编辑文本的基础:

解决方案:

1-您可以从头开始创建自己的编辑文本(从视图中).(可能需要一个月才能解决可能出现的所有问题).

2-找到一种覆盖编辑文本以删除拆分的方法.

3-找一个有人解决了这个问题的git(我怀疑).

作为程序员或用户,这似乎不是问题.设计师可能会有点恼火,但忽略它是最快的方式.

对不起,如果这没用.

点赞