视图的填充和边距之间的区别

View's Margin和Padding有什么区别?

为了帮助我记住填充的意思,我想起了一件厚厚的棉布大衣。 我穿着我的大衣,但是我和我的软垫外套在一起。 我们是一个单位。

但为了记住保证金 ,我想,“ 嘿,给我一些保证金! ”这是我和你之间的空白空间。 不要进入我的舒适区 – 我的边缘。

为了更加清楚,下面是一个TextView的填充和边距的图片:

在这里输入图像说明

上面的图像的xml布局

 <?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> 

有关

  • 重力vs layout_gravity
  • Match_parent与wrap_content

填充是边框内边界与实际视图内容之间的空间。 请注意,填充完全围绕内容:顶部,底部,左侧和右侧(可以是独立的)都有填充。

边界是边界之外的边界,边界和旁边的其他元素之间的空间。 在图像中,边缘是整个对象之外的灰色区域。 请注意,像填充一样,边距完全围绕内容:顶部,底部,右侧和左侧都有边距。

一个图像说超过1000字(从边缘VS填充 – CSS属性提取):

替代文字

填充位于视图的内部。

保证金在视图之外。

这种差异可能与背景或尺寸属性有关。

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

对于button,例如,特征button背景图像包括填充,但不包括边距。 换句话说,增加更多的填充使button看起来更大,而增加更多的边距只是使button和下一个控件之间的差距更大。

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

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

下图将让您了解填充和边距 –

在这里输入图像说明

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

有时候,只能通过填充或保证金进行游戏才能获得相同的结果。 例如:

说视图X包含视图Y(又名:视图Y在视图X内)。

– 查看Y的边距= 30或查看X与填充= 30将达到相同的结果:查看Y将有一个30的偏移量。

填充
填充是在一个View.For例如,如果你给android:paddingLeft=20dp ,那么在视图内的项目将从左边20dp宽度排列。您还可以使用paddingRightpaddingBottompaddingTop这是从右,底部填充和顶部分别。

余量
保证金在View之外。 例如,如果你给android:marginLeft=20dp ,那么视图将从左边20dp后排列。

填充意味着小部件和小部件原始帧之间的空间。 但边距是小部件的原始帧与其他小部件的边框之间的空间。 在这里输入图像说明

让我们假设你在视图中有一个button,视图的大小是200乘200,button的大小是50乘50,button标题是HT,现在边距和填充的区别是,你可以设置视图中的button边距,例如从顶部20左起20,填充将调整button或文本视图等中的文本位置,例如,填充值从左边开始为20。 所以会调整文字的位置。

保证金是指元素外部的额外空间。 填充是指元素内的额外空间。 保证金是控制权附近的额外空间。 填充是控件内部的额外空间。

很难看到有白色填充的边距和填充差异,但是用彩色填充可以很好地看到它。

简而言之:
填充改变框的大小(用一些东西)。
边距改变了不同的框之间的空间