如何防止一个EditText从调整自身,当用户键入?(How do I prevent an Edi

2019-08-05 01:39发布

我有一个EditText和一个Button旁边设置为彼此在同一水平线上。 它看起来很棒,当用户输入大量的文字,除了中, EditText的调整,而Button被压扁。

我有两个EditTextButton设置为layout_width="wrap_content""fill_parent"食堂布局,我不想使用绝对尺寸,如果我没有-它现在的方式看起来风景和肖像伟大的,我只是不希望EditText来调整。

我的布局:

<TableLayout
    android:id="@+id/homelayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableRow>
        <TextView
            android:id="@+id/labelartist"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Find artists:" />
    </TableRow>
    <TableRow>
        <EditText
            android:id="@+id/entryartist"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="6"
            android:background="@android:drawable/editbox_background"
            android:editable="true"
            android:padding="5px"
            android:singleLine="true" />
        <Button
            android:id="@+id/okartist"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="10dip"
            android:layout_weight="1"
            android:text="Search" />
    </TableRow>

</TableLayout>

Answer 1:

对于使用的EditText

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

而对于按钮不指定android:layout_weight



Answer 2:

我要做的就是在OnCreate的活动,第一次测量的EditText然后应用其maxWidth。

你可以这样做,使用类似于下面的代码:

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


Answer 3:

给出EditText一个maxWidth 。 这应该从调整超出您提供的宽度阻止它。 另外,如果你希望它被包含在1线设置maxLines设置为1了。



Answer 4:

只需使用:

android:layout_width="fill_parent"

两者的EditText和Button。 它还将努力设置的EditText,但最好是有它的两个。



Answer 5:

您需要添加的android:imeOptions防止这种行为。

点击这里



Answer 6:

因为它上面显示你可以定义你的EditText的大小

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

要么

android:layout_width="60dp"

要么

您可以将您想要的大小的背景图像,但不要忘记定义其高度与宽度WRAP_CONTENT。

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


Answer 7:

我有一个类似的问题,但我不能得到上述工作。 我所做的,是采取从的EditText框中的文本,然后格式化下来到我的屏幕能够处理的最大尺寸。 当我保存这个关闭的DB,我将其保存为显示文字和原文。

如果你去到这个页面 ,我把更详细的解释。



Answer 8:

要做到这一点,正确的方法是设置了android:minWidth和android:maxWidth等于你想要的宽度。 这样,您就不必调整布局使用Android:layout_weight。

例如,如果你希望你的EditText永远是80个密度像素,无论你使用以下多少个字符键入:

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


Answer 9:

我有确切的查询。 但我有一个EditText和一个线性布局彼此相邻的按钮。 我试过的android:layout_weight = “1”的EditText的android:layout_width = “0dp”和它的工作只是完美! 非常感谢!



Answer 10:

所选择的解决方案的工作,但我要补充一点补充:
如果您使用android:layout_weight="0.15" (值并不重要)
然后
android:layout_width="0dp"如果LinearLayout是水平
要么
android:layout_height="0dp"如果LinearLayout是垂直的。



文章来源: How do I prevent an EditText from resizing itself when the user is typing?