如何防止EditText在用户input时自行resize?
我有一个EditText
和一个Button
设置在同一水平线上彼此相邻。 它看起来不错,除非用户input大量文本, EditText
被resize, Button
被压扁。
我将EditText
和Button
设置为layout_width="wrap_content"
。 "fill_parent"
弄乱了布局,我不想使用绝对大小,如果我不需要 – 现在它在横向和纵向上看起来都很棒,我只是不希望EditText
resize。
我的布局:
<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>
对于EditText的使用
android:layout_width="0dp" - not required but preferred. android:layout_weight="1"
而对于Button不要指定android:layout_weight
我所做的是在活动的onCreate中,先测量EditText然后应用其maxWidth。
您可以使用与以下类似的代码来完成此操作:
EditText someedittext = (EditText)findViewById(R.id.sometextview); someedittext.setMaxWidth(someedittext.getWidth());
给EditText
一个maxWidth
。 这应该阻止它调整超出你提供的宽度。 另外,如果您希望它被包含在1行中,则maxLines
设置maxLines
设置为1。
只要使用:
android:layout_width="fill_parent"
为EditText和Button。 它也将工作设置为EditText,但最好在两个都有。
你可以像上面显示的那样定义edittext的大小
android:minWidth="80dp" android:maxWidth="80dp"
要么
android:layout_width="60dp"
要么
你可以应用你想要的大小的背景图像,但不要忘记用wrap_content来定义它的高度和宽度。
android:layout_width="wrap_content" android:layout_height="wrap_content"
你需要添加android:imeOptions来防止这种行为。
点击这里
我有类似的问题,但我无法得到上述工作。 我所做的是从EditText框中取出文本,然后将其格式化为我的屏幕可以处理的最大尺寸。 当我把它保存到数据库时,我将把它保存为显示文本和原文。
如果你去这个页面,我会提供一个更长的解释。
这样做的正确方法是将android:minWidth和android:maxWidth设置为您想要的宽度。 这样你就不必调整你的布局来使用android:layout_weight。
例如,如果您希望EditText始终为80个像素密度,则无论input多less个字符,都会使用以下内容:
android:minWidth="80dp" android:maxWidth="80dp"
我有确切的查询。 但是我有一个在线性布局中彼此相邻的EditText和Button。 我尝试了android:layout_weight =“1”为EditText android:layout_width =“0dp”它的工作完美! 非常感谢!