如何在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中将光标定位在右侧的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AutoCompleteTextView 中定位光标
Android中的EditText中,输入信息时,怎么能让光标停靠在输入的信息的右侧而不是左侧呢?