【问题标题】:Android Edit text alignmentAndroid编辑文本对齐
【发布时间】:2012-02-21 16:58:44
【问题描述】:

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

我有一些文本元素在显示标志中居中对齐。当我点击它时,它会转换为editText。我希望编辑文本中的文本居中对齐并且内容被包裹。但是当我输入一些东西时,editText 会双向扩展,使文本与中心对齐。我想对右对齐的文本元素做同样的事情(唯一的区别是编辑文本只会向左扩展)。

当我现在尝试这样做时,它会向左扩展。这是我用于布置编辑文本元素的代码

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。

有什么办法可以做到吗?

【问题讨论】:

标签: android android-layout android-edittext


【解决方案1】:

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

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 inputField 输入的文本水平居中。

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

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

【讨论】:

    【解决方案2】:

    这是一个经过测试的更简单的解决方案。只需在布局 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" />
    

    【讨论】:

    • 两个答案都是正确的。但是,操作员试图在 java 中执行此操作,因此其他答案更准确 imo
    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 2020-07-05
    • 2013-09-10
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    相关资源
    最近更新 更多