View的边距和填充有什么区别?
答案 0 :(得分:570)
填充是边框内,边框与实际视图内容之间的空间。请注意,填充完全围绕内容:顶部,底部,右侧和左侧有填充(可以是独立的)。
边距是边框之外,边框与此视图旁边的其他元素之间的空格。在图像中,边距是整个对象外部的灰色区域。请注意,与填充一样,边距完全围绕内容:顶部,底部,右侧和左侧都有边距。
图片显示超过1000个单词(从Margin Vs Padding - CSS Properties中提取):
答案 1 :(得分:532)
为了帮助我记住填充的含义,我想到了一件有很多厚棉垫的大衣。我穿着外套,但是我和我的衬垫在一起。我们是一个单位。
但要记住保证金,我想,“嘿,给我一些余地!”这是我和你之间的空白。不要进入我的舒适区 - 我的保证金。
为了更清楚,这里是TextView
中填充和边距的图片:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#c5e1b0"
android:textColor="#000000"
android:text="TextView margin only"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#f6c0c0"
android:textColor="#000000"
android:text="TextView margin only"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#c5e1b0"
android:padding="10dp"
android:textColor="#000000"
android:text="TextView padding only"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#f6c0c0"
android:padding="10dp"
android:textColor="#000000"
android:text="TextView padding only"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#c5e1b0"
android:textColor="#000000"
android:padding="10dp"
android:text="TextView padding and margin"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="#f6c0c0"
android:textColor="#000000"
android:padding="10dp"
android:text="TextView padding and margin"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#c5e1b0"
android:textColor="#000000"
android:text="TextView no padding no margin"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#f6c0c0"
android:textColor="#000000"
android:text="TextView no padding no margin"
android:textSize="20sp" />
</LinearLayout>
答案 2 :(得分:71)
填充位于视图内。
保证金在视图之外。
这种差异可能与背景或尺寸属性有关。
答案 3 :(得分:41)
填充在视图内,边距在外面。填充适用于所有视图。根据视图,填充和边距之间可能存在或不存在视觉差异。
对于按钮,例如,特征按钮背景图像包括填充,但不包括边距。换句话说,添加更多填充使按钮看起来更大,而添加更多边距只会使按钮和下一个控件之间的间隙变宽。
另一方面,对于TextView
s,填充和边距的视觉效果是相同的。
边距是否可用取决于视图的容器,而不是视图本身。 LinearLayout
支持AbsoluteLayout
,{{1}}(现在已经过时) - 没有。
答案 4 :(得分:23)
下面的图片将让您了解填充和边距 -
答案 5 :(得分:7)
填充是边框与实际图像或单元格内容之间边框内的空间。 边距是边框之外,边框与此对象旁边的其他元素之间的空格。
答案 6 :(得分:7)
有时你只能通过填充或边距来实现相同的结果。示例:
Say View X包含视图Y(又名:View Y在View X中)。
- 使用Margin = 30查看Y或使用Padding = 30查看X将获得相同的结果:视图Y的偏移量为30。
答案 7 :(得分:7)
<强>填充强>
填充位于视图内。例如,如果您提供android:paddingLeft=20dp
,则视图中的项目将从左侧排列20dp
宽度。您还可以使用paddingRight
,{{1} },paddingBottom
分别从右,底部和顶部给出填充。
<强>保证金强>
保证金在paddingTop
之外。例如,如果您提供View
,则视图将从左侧android:marginLeft=20dp
后排列。
答案 8 :(得分:7)
答案 9 :(得分:3)
假设您在视图中有一个按钮,视图大小为200 x 200,按钮大小为50 x 50,按钮标题为HT。现在边距和填充之间的区别在于,您可以在视图中设置按钮的边距,例如从左侧开20,从顶部开20,填充将调整按钮或文本视图中的文本位置等。 ,填充值从左边开始为20,因此它将调整文本的位置。
答案 10 :(得分:2)
边距是指元素外部的额外空间。填充是指元素中的额外空间。边距是控件周围的额外空间。填充是控件内部的额外空间。
使用白色填充很难看到边距和填充的差异,但使用彩色填充可以看到它很好。
答案 11 :(得分:1)
简单来说:
填充改变了盒子的大小(有东西)
保证金会改变不同方框之间的空间
答案 12 :(得分:0)
除了上面的所有正确答案之外,另一个区别是 填充 会增加视图的可点击区域,而边距强>不要。如果您有一个小的可点击图像但想要使点击处理程序宽容,这将非常有用。
例如,请使用ImageView
(Android图标)查看我的布局图片,并将paddingBotton
设置为100dp
(图片为stock launcher mipmap {{ 1}})。使用附加的点击处理程序,我能够点击图像外部和下方的方式,并仍然注册一次点击。
答案 13 :(得分:0)
简单来说:
答案 14 :(得分:0)
Padding 用于在视图与其内容之间添加一个空格。
Margin 用于在不同视图之间添加空格。
对于 padding 和 margin,我们有两种设置方式,
值相等的所有边:
您可以使用 android:padding="15dp"
设置边距为 15dp
和 android:layout_margin="15dp"
用于设置所有边 15dp 的边距
具有特定值的双方:
填充
android:paddingBottom
设置底部边缘的内边距android:paddingStart
设置起始边缘的内边距意味着在视图的左侧android:paddingEnd
在视图右侧设置结束边缘的填充android:paddingTop
设置顶部边缘的内边距边距
android:layout_marginBottom
指定此视图底部的额外空间。android:layout_marginEnd
指定末端的额外空间,表示在此视图的右侧。android:layout_marginStart
指定起始侧的额外空间,表示在此视图的左侧。android:layout_marginTop
指定此视图顶部的额外空间。