将 EditText layoutDirection 设置为 ltr 并将重力设置为 center

Posted

技术标签:

【中文标题】将 EditText layoutDirection 设置为 ltr 并将重力设置为 center【英文标题】:Set an EditText layoutDirection to ltr and gravity to center 【发布时间】:2018-11-11 15:11:56 【问题描述】:

我的应用程序是 RTL 语言。我有一个接受数字的编辑文本,所以我需要将其 layoutDirection 设置为 ltr 以防止它成为 rtl。但问题是android:gravity="center" 不能以这种方式工作,并且文本从左侧而不是中心显示。当其 layoutDirection 为 ltr 时,如何将 EditText 重力设置为中心?

<EditText
     android:id="@+id/editText"
     android:layout_
     android:layout_
     android:background="@null"
     android:ems="10"
     android:gravity="center"
     android:inputType="number"
     android:layoutDirection="ltr"
     android:maxLength="2" />

【问题讨论】:

【参考方案1】:

你可能想要android:textAlignment,而不是android:gravity

android:textAlignment="center"

【讨论】:

抱歉没用。我需要文本位于 EditText 的中间。【参考方案2】:

使用这个,希望对你有帮助。

 <EditText
                android:id="@+id/editText"
                android:layout_
                android:layout_
                android:ems="10"
                android:gravity="center"
                android:inputType="number"
                android:layoutDirection="ltr"
                android:maxLength="2"
                />

【讨论】:

它不起作用。和我自己的代码没有区别! 在重力中使用这个:- android:gravity="center_vertical|center_horizo​​ntal" 它不起作用。对不起。一旦我删除android:layoutDirection="ltr",它就会变成好的【参考方案3】:

使用android:layout_gravity="center" 而不是android:gravity 如果您使用父布局作为LinearLayout

【讨论】:

以上是关于将 EditText layoutDirection 设置为 ltr 并将重力设置为 center的主要内容,如果未能解决你的问题,请参考以下文章

将文本输入到 EditText 中的问题

EditText ,希望将键入的文本显示为星号 ' * '

以编程方式将 EditText 的背景资源设置为透明字段

将数据从edittext发送到listview

检测用户何时将数据输入edittext立即显示答案[关闭]

将 EditText 转换为 int? (安卓)