安卓如何调整文本框的对齐方式

24
我正在制作一款平板电脑小应用,类似于一个展示牌。我有几个文本元素居中对齐在展示牌上。当我点击时,它会被转换为可编辑文本。我希望编辑文本的内容是居中对齐并可以自动换行的。但是当我输入内容时,编辑文本会向两侧扩展,保持文本居中对齐。对于右对齐的文本元素,我想要达到同样的效果(唯一的区别是编辑文本只会向左侧扩展)。目前我尝试实现时,它会向左侧扩展。这是我放置编辑文本元素的代码。
tempView=new EditText(this);
((EditText) tempView).setTextSize(shrinkedFontSize);
((EditText) tempView).setTypeface(tf);
((EditText) tempView).setText(tempInput.getText());     
((EditText) tempView).setGravity(Gravity.CENTER);
layout.addView(tempView, tempParams);

我正在将布局参数中的宽度设置为Wrap_content。我还在布局参数中指定了编辑文本左上角的x和y。

有没有办法实现这一点?


textView.setGravity(Gravity.CENTER_HORIZONTAL); 将TextView的文本水平居中对齐。 - DC Design
2个回答

48
这应该可以解决你的问题:
EditText t = (EditText) findViewById(R.id.text);
t.setGravity(Gravity.CENTER);

在XML中的“...”:
<EditText
    android:id="@+id/text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="text" />

它使EditText输入框中输入的文本水平居中。

您可以将layout_widthfill_parent更改为150 dp或任何其他大小,但不是wrap_content。文本将水平居中。

设置t.setGravity(Gravity.RIGHT);LEFT,可以使输入的文本左对齐或右对齐。


18

这是一个经过测试的更简单的解决方案。只需在布局XML文件中添加android:gravity="center",即可使文本居中对齐EditText。无需更改Java代码。

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

两个答案都是正确的。然而,OP试图在Java中实现,所以我认为另一个答案更准确。 - SDIDSA

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