如何在Android中增加LinearLayout中元素之间的间距?

31

在我的应用程序中,我使用了线性布局(linearlayout),其中包含3个EditText元素。现在我想增加EditText元素之间的空间(padding)。这是否可能?

可以通过在EditText元素之间添加android:padding属性来增加它们之间的空间。您可以尝试不同的值,以获得所需的间距效果。

只是想指出,正确的答案不是“在Android中,如何...”中被接受的答案,而是建议使用分隔符,因为这样可以让你在任意数量的子元素上应用空格。 - Lukasz 'Severiaan' Grela
我已经在链接的答案中添加了一个额外的答案,它只是在LinearLayout的子项上使用.setPadding() - ConcernedHobbit
4个回答

47
基本上这与你的边框有关,如果你想在边框内部元素之间添加空间(即让边框接触),你应该使用填充属性。
如果你想在边框外面添加空间(让边框分开),你应该使用边距属性。
查看此图片以进行说明:

enter image description here


太棒了!!!解释得真清楚。 - Thiru
很好的理解边距和填充示例,特别适合新手! - duggu
一张不错的图片,但我也会去掉内容周围的黑色边框和最外层的黑色边框。 - Zon

45

你应该在xml文件中的EditText中按照下面的方式设置布局边距:

 android:layout_marginLeft="5dp"

你可以针对marginTop、marginBottom、marginRight和marginLeft进行设置,具体取决于您的要求。您必须在布局元素上指定此选项,而不是在布局本身上指定。

padding和Margin的区别: Padding涉及视图内部的空间,而Margin是视图外部或两个视图之间的空间。

如果需要在任何一个方向上增加视图外部的空间,可以按照以上所述实现;如果需要在视图周围的所有侧面上增加空间,则可以使用下面的标记:

android:layout_margin="5dp"


1
非常感谢你,我真的被你的热情所感动 :) - Thiru
2
还有一件事,你问的是MARGIN,PADDING是编辑文本框中的一些空间。例如:如果你在编辑文本框中说padding_left,它会在开始输入文本之前留下一些空间。 如果我的回答有帮助,请接受它。 - AAnkit
在编程中加入样板代码是一种不好的习惯。你应该使用主题或简单的可绘制分隔符。 - Alex.F
这个 5dp 是从哪里来的? - Yousha Aleayoub
考虑将以下与编程相关的内容从英文翻译成中文。只返回翻译后的文本:将其视为Xdp,X可以根据用户界面需求而定。 - AAnkit

13

为了给字段之间留出空白,可以在四个方向上分配边距。

android:layout_margin="10dp"

您还可以使用以下内容来指定不同的方向:

android:layout_marginLeft="10dp"

android:layout_marginRight="10dp"

android:layout_marginTop="10dp"

android:layout_marginBottom="10dp"


这个“10dp”是从哪里来的? - Yousha Aleayoub
1
@YoushaAleayoub,这只是一个我设置的固定距离。 - SilentKiller
@YoushaAleayoub dp是一种在Android中为视图提供距离或大小的格式,而10只是一个数字,就像10px一样,其中px代表像素。 - SilentKiller

6
只是补充一下,您还可以动态更改它。
int left = 6;
int top = 12;
int right = 6;
int bottom = 6;

TableRow.LayoutParams params = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(left, top, right, bottom);

EditText edXY = new EditText(inventory.this);
edXY.setLayoutParams(params);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接