Android编辑文本对齐方式

Dha*_*tel 21 android android-layout android-edittext

我正在为平板电脑制作一个小应用程序,类似于显示标志.

我有几个文本元素在显示标志中居中对齐.当我点击它时,它会转换为editText.我希望编辑文本的方式使其中的文本居中对齐并包含内容.但是当我输入内容时,editText会扩展两种方式,使文本与中心保持对齐.我想用右对齐的文本元素做同样的事情(唯一的区别是编辑文本只会向左扩展).

当我试图这样做时,它向左扩展.这是我的代码,用于布局编辑Text元素

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);
Run Code Online (Sandbox Code Playgroud)

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

有没有办法实现这个目标?

Asa*_*Rao 41

这应该可以解决您的问题:

EditText t = (EditText) findViewById(R.id.text);
t.setGravity(Gravity.CENTER);
Run Code Online (Sandbox Code Playgroud)

...在XML中:

<EditText
    android:id="@+id/text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="text" />
Run Code Online (Sandbox Code Playgroud)

它使EditText inputField输入的文本水平居中.

您可以layout_width将从更改fill_parent为150 dp或任何其他大小,但不能wrap_content.文本将水平居中.

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


Aja*_*y B 16

这是一个经过测试的简单解决方案.只需添加android:gravity="center"到布局XML文件,即可将文本与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" />
Run Code Online (Sandbox Code Playgroud)