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

ale*_*x_c 49 layout android android-edittext

我有一个EditTextButton彼此相邻设置在同一水平线上.它看起来很棒,除非用户输入大量文本,EditText大小调整,并且Button被压扁.

我有两个EditText并且Button设置为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>
Run Code Online (Sandbox Code Playgroud)

bha*_*982 88

对于EditText使用

android:layout_width="0dp" - not required but preferred.
android:layout_weight="1"
Run Code Online (Sandbox Code Playgroud)

并且对于Button不指定 android:layout_weight


Kev*_*ker 14

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

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

EditText someedittext = (EditText)findViewById(R.id.sometextview);
someedittext.setMaxWidth(someedittext.getWidth());
Run Code Online (Sandbox Code Playgroud)


Pra*_*ast 5

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

  • 谢谢 - 我真的不想硬编码特定的maxWidth,因为它对于不同的方向或屏幕尺寸不一样. (3认同)