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

时间:2018-01-29 09:18:22

标签: android android-edittext android-inputtype arabic-support

我将EditText设置为gravity Right,如果语言是阿拉伯语,则文本从右侧开始。

注意:我的应用程序支持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

enter image description here

5 个答案:

答案 0 :(得分:1)

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

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

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

解决方案:

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

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

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

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

对不起,如果这不是有用的。

答案 1 :(得分:0)

ViewCompat.setLayoutDirection(findViewById(R.id.myedittext), ViewCompat.LAYOUT_DIRECTION_LTR);

它对我有用。

答案 2 :(得分:0)

将layout_direction属性用作'ltr',并将重力'right'用于。

sandbox

这解决了我的问题。

答案 3 :(得分:0)

使用水平排列和layoutDirection ltr将您的Edittext包裹在linearlayout中

答案 4 :(得分:0)

试着把android:inputType="number"改成电话..

例如:

   <com.test.utils.custom.CustomTelephone
    android:id="@+id/custom_telephone"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_margin="20dp"
    android:inputType="phone"
    android:text="@string/telephone_number_title"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@id/iv_logo" />

这对我有用..

如果不起作用,请尝试在编辑文本中添加 layoutDirection:Rtl 作为属性 .. 快乐编码..!