EditText在RTL Locale的开头添加了像@这样的特殊字符

时间:2018-01-26 17:58:45

标签: android android-edittext locale arabic-support

我将EditText设置为textDirection - " Local"并尝试用阿拉伯语。当我开始输入时,它从右边开始,这是我想要的,但当我输入像#34; +"或" @"它在文本的开头添加它,并在键入另一个字符后将其移动到最后。 例如,当我输入rao@gmail.com时,在输入时会输入' @'和'。'该字符被添加到文本的开头。

我在网上看了一下,看了如何使用''但无法得到解决方案,你能指导我如何解决它。

的EditText

 <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/email"
            android:inputType="textEmailAddress"
            android:maxLines="1"
            android:lines="1"
            android:nextFocusDown="@+id/password_text"
            android:text=""
            android:textDirection="locale"
            />

1 个答案:

答案 0 :(得分:0)

为了以最佳方式支持RTL,您应该将其添加到清单中:

<application
    android:supportsRtl="true"
    ... >
        ...
 </application>

如上所述:https://developer.android.com/guide/topics/manifest/application-element.html#supportsrtl

  

android:supportsRtl
      声明您的申请是否愿意       支持从右到左(RTL)布局。如果设置为true并且       targetSdkVersion设置为17或更高,各种RTL API将是       由系统激活和使用,以便您的应用程序可以显示RTL布局。       如果设置为false或者targetSdkVersion设置为16或更低,则为RTL       API将被忽略或无效,您的应用程序将表现出来       无论与用户相关的布局方向如何都是一样的       区域设置选择(您的布局将始终从左到右)。

     

此属性的默认值为false。

     

此属性已在API级别17中添加。