Android:如何在程序中使EditText文本居中?

28

有没有办法将输入的文本在 EditText 字段中居中显示?更具体地说,光标不应从框的左侧开始,而应该从中心开始,并随着输入向左移动。

3个回答

57

你应该使用

 textView.setGravity(Gravity.CENTER_HORIZONTAL);

对于未来的读者,如果您想要水平和垂直居中,只需使用 textView.setGravity(Gravity.CENTER_HORIZONTAL); - capcom
我认为它会使垂直居中,因为如果没有指定居中对齐方式,EditText会自动执行此操作。 - ColdFire
真的吗?嗯,它似乎在垂直和水平方向上都居中了,所以我认为它很好。 - capcom
小心,在一些 Android 5/6 设备上会导致 bug,参考:https://dev59.com/kmUp5IYBdhLWcg3wXGy8#26017060。 - 林果皞

22
尝试在你的布局文件中的小部件定义中加入android:gravity="center_horizontal"。这不会严格意义上地“向左移动”,而应该是向两个方向平均移动。如果你真的希望文本只出现在EditText的左侧,我怀疑可能不可能实现。

谢谢,但是能否也通过编程的方式来实现呢? - capcom
@capcom:啊,抱歉,我没意识到你是指“Java”。 - CommonsWare

6

在布局xml中添加android:gravity="center"即可更简单地对齐EditText中的文本,无需添加Java代码。

测试样例代码:

<EditText
                android:id="@+id/FieldName"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/back"
                android:inputType="numberDecimal"
                android:gravity="center" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接