如何在EditText中将光标定位在右侧

时间:2011-10-18 20:31:24

标签: android android-layout android-edittext right-to-left

我的应用程序使用RTL language(从右到左)。

EditText字段获得焦点时,光标出现在左侧,只有当用户开始输入时,光标(和RTL文本)才会向右移动。 当用户点击“enter”开始换行时,光标再次向左移动。

当我使用android:gravity="right"时,光标正常(在右侧)但是当用户开始输入时,文本总是移动到另一侧(RTL文本向左移动)。

任何想法如何将文本对齐并保持文本方向?

5 个答案:

答案 0 :(得分:19)

它适用于我

      <EditText
            android:id="@+id/editText1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:ellipsize="end"
            android:gravity="right" />

ellipsize非常重要

它解决了你的问题

答案 1 :(得分:2)

您可能希望了解Android 4.2 Jelly Bean中引入的本机RTL支持。

http://developer.android.com/about/versions/jelly-bean.html

Android 4.2引入了对RTL(从右到左)布局的完全原生支持,包括布局镜像。借助原生RTL支持,您可以为所有用户提供同样出色的应用体验,无论他们的语言是使用从右向左读取的脚本还是从左到右读取的脚本。

答案 2 :(得分:1)

我遇到了同样的问题,我可以通过在EditText中设置android:textDirection来解决此问题。 e.g

android:textDirection="inherit"

您可以根据自己的要求更改 textDirection 的值。我将其视为继承,因为用户可以在应用中更改语言。因此,如果用户选择了英语或印地语这样的语言,那么它将从从左到右的方向开始输入,但如果用户选择了像urdu这样的语言,那么它将开始输入 right-to-左方向

为此,您的应用最低API级别 17

答案 3 :(得分:0)

恕我直言,android:gravity = right只会使文本向右化。但你想要的不能用这个来完成。您可以在ontouch中调用textbox事件,并将新字符添加到当前文本的右侧并再次显示.....

答案 4 :(得分:0)

从API级别开始&gt; = 17

我们可以在编辑文字中使用android:layoutDirectionandroid:gravity="end"也应该有效。