视图的填充和边距之间的差异

时间:2011-01-06 21:11:09

标签: android user-interface view padding margin

View的边距和填充有什么区别?

15 个答案:

答案 0 :(得分:570)

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

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

图片显示超过1000个单词(从Margin Vs Padding - CSS Properties中提取):

alt text

答案 1 :(得分:532)

为了帮助我记住填充的含义,我想到了一件有很多厚棉垫的大衣。我穿着外套,但是我和我的衬垫在一起。我们是一个单位。

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

为了更清楚,这里是TextView中填充和边距的图片:

enter image description here

上面图像的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>

相关

答案 2 :(得分:71)

填充位于视图内。

保证金在视图之外。

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

答案 3 :(得分:41)

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

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

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

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

答案 4 :(得分:23)

下面的图片将让您了解填充和边距 -

enter image description here

答案 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)

填充表示小部件和小部件原始帧之间的空间。但是边距是小部件原始框架与边框其他小部件框架之间的空间。enter image description here

答案 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}})。使用附加的点击处理程序,我能够点击图像外部和下方的方式,并仍然注册一次点击。

enter image description here

答案 13 :(得分:0)

简单来说:

  1. 填充 - 在视图的边框内创建空间。
  2. 保证金 - 在视图边框之外创建空间。

答案 14 :(得分:0)

Padding 用于在视图与其内容之间添加一个空格。

enter image description here

Margin 用于在不同视图之间添加空格。

enter image description here 对于 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 指定此视图顶部的额外空间。