我在同一水平线上彼此相邻设置EditText
和Button
。它看起来很棒,除非用户输入大量文字,EditText
会调整大小,Button
会被压缩。
我将EditText
和Button
设置为layout_width="wrap_content"
。 "fill_parent"
弄乱了布局,如果我不需要,我不想使用绝对尺寸 - 它现在在横向和纵向看起来都很棒,我只是不想{{ 1}}调整大小。
我的布局:
EditText
答案 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)
答案 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
是垂直的。