如何在用户键入时阻止EditText自行调整大小?

时间:2009-09-11 03:06:01

标签: android layout android-edittext

我在同一水平线上彼此相邻设置EditTextButton。它看起来很棒,除非用户输入大量文字,EditText会调整大小,Button会被压缩。

我将EditTextButton设置为layout_width="wrap_content""fill_parent"弄乱了布局,如果我不需要,我不想使用绝对尺寸 - 它现在在横向和纵向看起来都很棒,我只是不想{{ 1}}调整大小。

我的布局:

EditText

10 个答案:

答案 0 :(得分:88)

对于EditText,请使用

android:layout_width="0dp" - not required but preferred.
android:layout_weight="1"

对于Button,不要指定android:layout_weight

答案 1 :(得分:14)

我所做的是在活动的onCreate中,首先测量EditText,然后应用其maxWidth。

您可以使用类似于以下内容的代码执行此操作:

EditText someedittext = (EditText)findViewById(R.id.sometextview);
someedittext.setMaxWidth(someedittext.getWidth());

答案 2 :(得分:5)

EditText maxWidth。这应该阻止它调整超出你提供的宽度。此外,如果您希望将其包含在1行内,请将maxLines设置设置为1。

答案 3 :(得分:2)

只需使用:

android:layout_width="fill_parent"

用于EditText和Button。它也可以为EditText设置,但最好同时使用它。

答案 4 :(得分:2)

enter image description here

您需要添加android:imeOptions以防止此行为。

Click here

答案 5 :(得分:1)

您可以定义上面显示的edittext的大小

android:minWidth="80dp"
android:maxWidth="80dp"

android:layout_width="60dp"

您可以应用所需尺寸的背景图像 但不要忘记定义它的高度和宽度 with wrap_content。

  android:layout_width="wrap_content"
  android:layout_height="wrap_content"

答案 6 :(得分:0)

我有类似的问题,但我无法完成上述工作。我所做的是从EditText框中获取文本,然后将其格式化为我的屏幕可以处理的最大大小。当我将其保存到数据库时,我将其保存为显示文本和原始文本。

如果你去to this page我会提出更长的解释。

答案 7 :(得分:0)

执行此操作的正确方法是将android:minWidth和android:maxWidth设置为您想要的宽度。这样您就不必调整布局来使用android:layout_weight。

例如,如果您希望EditText始终为80个密度像素,无论您键入多少个字符,请使用以下内容:

android:minWidth="80dp"
android:maxWidth="80dp"

答案 8 :(得分:0)

我有确切的查询。但我在线性布局中有一个EditText和一个按钮。 我为EditText 尝试了 android:layout_weight =“1”         机器人:layout_width = “0dp” 它工作得很完美! 非常感谢!

答案 9 :(得分:0)

选择的解决方案有效,但让我补充一点:
如果您使用 android:layout_weight="0.15"(该值并不重要)
然后
如果android:layout_width="0dp"是水平的,则LinearLayout

android:layout_height="0dp"LinearLayout是垂直的。