视图的边距和填充之间的区别是什么?


当前回答

除了上述所有正确答案之外,另一个区别是填充增加了视图的可点击区域,而边距则不会。如果你有一个小的可点击图像,但想让点击处理程序宽容,这是有用的。

例如,看到我的ImageView布局的这张图片(Android图标),我将paddingbutton设置为100dp(图像是股票启动器mipmap ic_launcher)。有了附加的点击处理程序,我能够点击外面和下面的图像,仍然注册一个点击。

其他回答

有时你可以通过使用填充或边距来达到同样的效果。例子:

假设视图X包含视图Y(也就是:视图Y在视图X内部)。

-View Y的Margin=30或View X的Padding=30将达到相同的结果:View Y的offset为30。

填充在视图内部。

边距在视图之外。

这种差异可能与背景或大小属性有关。

简单地说:

填充-在视图的边界内创建空间。 边框-创建视图边框之外的空间。

填充是边框与实际图像或单元格内容之间的边框内的空间。 边距是边界之外的空间,在边界和对象旁边的其他元素之间。

边距在视图内,边距在视图外。填充可用于所有视图。根据视图的不同,边距和边距之间可能存在或可能没有视觉差异。

例如,对于按钮,特征按钮背景图像包括填充,但不包括空白。换句话说,添加更多的填充会使按钮在视觉上看起来更大,而添加更多的边距只会使按钮和下一个控件之间的距离更宽。

另一方面,对于TextViews,填充和边缘的视觉效果是相同的。

页边距是否可用是由视图的容器决定的,而不是视图本身。在LinearLayout中支持边距,在AbsoluteLayout(现在已经过时了)中不支持边距。