我将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
答案 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 作为属性 .. 快乐编码..!