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

Posted

技术标签:

【中文标题】如何在EditText中将光标定位在右侧【英文标题】:How do I position the cursor on the right in EditText 【发布时间】:2011-12-10 10:18:09 【问题描述】:

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

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

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

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

【问题讨论】:

我也只搜索这个..如果你得到答案意味着..请告诉我.. 仍然没有答案,但我发现在某些设备上这种行为与其他设备不同。我使用支持希伯来语的设备,Galaxy S 的行为与 Galaxy S2 不同。我想重要的是安装的ROM。我还没有在冰淇淋三明治上测试过它,其中 RTL 语言支持是标准的。如果我的问题与您相关,如果您点击 ^(向上),我将不胜感激。 如果您的应用程序不是多语言的,您可以仅将 TextView 字段对齐到右侧(因此它可以“拉伸”到左侧)。它在字段为单行时有效。 试试这个答案:***.com/a/6624186/758458 你有没有找到解决这个问题的方法请在这里回答***.com/questions/11314356/… 【参考方案1】:

它对我有用

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

ellipsize 很重要

它解决了你的问题

【讨论】:

【参考方案2】:

您可能想了解 Android 4.2 Jelly Bean 中引入的原生 RTL 支持。

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

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

【讨论】:

【参考方案3】:

我有同样的问题,我可以通过在我的 EditText 中设置 android:textDirection 来解决这个问题。例如

android:textDirection="inherit"

您可以根据需要更改 textDirection 的值。我把它当作 inherit 因为用户可以在应用程序中更改语言。因此,如果用户选择了英语或印地语等语言,那么它将从从左到右方向开始输入,但如果用户选择了像乌尔都语这样的语言,那么它将开始输入从右到-向左方向

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

【讨论】:

【参考方案4】:

从 API 级别开始>=17

我们可以在编辑文本中使用android:layoutDirection。 android:gravity="end" 也应该可以工作。

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于如何在EditText中将光标定位在右侧的主要内容,如果未能解决你的问题,请参考以下文章

EditText光标位置

将 DIV 定位在光标处但在可视区域内

如何在 AutoCompleteTextView 中定位光标

Android中的EditText中,输入信息时,怎么能让光标停靠在输入的信息的右侧而不是左侧呢?

IDEA中的LiveTemplates如何生成代码后定位光标

Delphi中如何判断当前光标的位置