Android 中的 RTL EditText 指针损坏问题
RTL EditText broken pointer issue in Android
在 rtl 布局中,edittext pointer 在 android 设备中损坏。
我有一个支持英语和阿拉伯语的应用程序。因为具有输入类型编号的编辑文本字段主要存在此问题。在编辑文本字段中输入数字时,指针将分成两半,如图所示。
这是编辑文本的 xml 代码。
<EditText
android:id="@+id/et_budget"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:background="@drawable/white_background_theme_border"
android:ems="10"
android:gravity="center"
android:hint="@string/choose_budget"
android:inputType="number"
android:padding="15dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColorHint="@android:color/black" />
有人遇到过这个问题吗?是否有相同的修复方法。
提前致谢。
只需添加这一行
android:layoutDirection="ltr"
你试过这个吗
布局
<EditText>
...
android:gravity="right"
android:textDirection="rtl"
</EdiText>
AndroidManifest.xml
<application
...
android:supportsRtl="true">
...
</application>
而不是使用 android:inputType="number"
,设置 android:inputType="phone"
在我的情况下有效。因为我只想在我的编辑文本中输入数字。
以下是我来自 xml 的 EditText:
<EditText
android:layout_gravity="start"
android:textAlignment="viewStart"
android:textDirection="rtl"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:hint="abc"
android:inputType="phone"
android:id="@+id/myNumber"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:background="@android:color/transparent"
android:textColorHint="#767676"
android:backgroundTint="@android:color/transparent"
android:layout_height="fill_parent"
tools:ignore="RtlCompat" />
android:textDirection="ltr" left to right
android:textDirection="rtl" right to left
它使文本方向指向所选的一侧。如果您的输入值是拉丁字符,我强烈建议您使用 ltr(阿拉伯语)。但标签按其性质定位(如阿拉伯语右,英语左)
在 rtl 布局中,edittext pointer 在 android 设备中损坏。
我有一个支持英语和阿拉伯语的应用程序。因为具有输入类型编号的编辑文本字段主要存在此问题。在编辑文本字段中输入数字时,指针将分成两半,如图所示。
这是编辑文本的 xml 代码。
<EditText
android:id="@+id/et_budget"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:background="@drawable/white_background_theme_border"
android:ems="10"
android:gravity="center"
android:hint="@string/choose_budget"
android:inputType="number"
android:padding="15dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColorHint="@android:color/black" />
有人遇到过这个问题吗?是否有相同的修复方法。 提前致谢。
只需添加这一行
android:layoutDirection="ltr"
你试过这个吗
布局
<EditText>
...
android:gravity="right"
android:textDirection="rtl"
</EdiText>
AndroidManifest.xml
<application
...
android:supportsRtl="true">
...
</application>
而不是使用 android:inputType="number"
,设置 android:inputType="phone"
在我的情况下有效。因为我只想在我的编辑文本中输入数字。
以下是我来自 xml 的 EditText:
<EditText
android:layout_gravity="start"
android:textAlignment="viewStart"
android:textDirection="rtl"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:hint="abc"
android:inputType="phone"
android:id="@+id/myNumber"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:background="@android:color/transparent"
android:textColorHint="#767676"
android:backgroundTint="@android:color/transparent"
android:layout_height="fill_parent"
tools:ignore="RtlCompat" />
android:textDirection="ltr" left to right
android:textDirection="rtl" right to left
它使文本方向指向所选的一侧。如果您的输入值是拉丁字符,我强烈建议您使用 ltr(阿拉伯语)。但标签按其性质定位(如阿拉伯语右,英语左)