Android初学者填充和边距之间的区别

这个问题已经在这里有了答案:

视图的填充和边距之间的区别 14个答案

我已经提到了有关SO的问题。 还检查了答案:

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

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

此外,有关填充和边距的更多信息来自:

[HTTP://developer.Android.com/reference/Android/view/view.HTML]

[HTTP://developer.Android.com/reference/Android/view/view group.margin layout par AMS.HTML]

但是,填充和边距之间的根本区别是什么? 行为会因O.S.而有所不同 和设备?

我有一个普通的简单布局。 代码没问题,已使用布局文件夹-layout和layout-sw600dp加上drawables-4dpi。 不能在没有边距或填充的情况下进行布局,哪个更合适?

asked 2020-08-09T14:19:11Z

10个解决方案

61 votes

保证金

边距构成元素之间的垂直和水平区域。 如果元素周围没有边距,它们将相互碰撞。 换句话说,元素外部或元素之间的空间就是构成边缘区域的区域。

android studio 编辑框行号右边边距太大 android studio内边距与外边距_边距

填充

元素的填充是在目标元素的内容区域周围设置的水平和垂直空间。 因此,填充位于框的内部,而不是外部。

android studio 编辑框行号右边边距太大 android studio内边距与外边距_android布局距边距_02

Kashif Nazar answered 2020-08-09T14:20:26Z

40 votes

Padding用于内部/内部组件。 例如。 TextView、Button、EditText等。

例如。 文字和边框之间的空间

Padding将应用于组件的外侧。

例如。 屏幕左边缘与组件边框之间的空间

视觉表示的优点在于:视图的填充和边距之间的区别

在Padding中,我看到了2.2、2.3和4.3、4.4的差异

在这种情况下:

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="ASDFGHJKL" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="15dp"
android:text="@string/hello_world" />

另外,检查调光的使用:

[HTTP://developer.Android.com/贵的/topics/resources/more-resources.HTML]
Pararth answered 2020-08-09T14:19:52Z
24 votes

用简单的话说..如果您想让诸如TextView,EditText之类的小部件远离其他对象。 您应该使用顶部,右侧,左侧,底部的边距。

通过增加填充,它将增加内部间距,而不会使小部件彼此分开。

android studio 编辑框行号右边边距太大 android studio内边距与外边距_android_03

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

Xar E Ahmer answered 2020-08-09T14:20:57Z

21 votes

边距:在边框及其父布局之间

填充:内容和边框之间

参考这个

android studio 编辑框行号右边边距太大 android studio内边距与外边距_android布局距边距_04

Orhan Obut answered 2020-08-09T14:21:26Z

5 votes

填充位于视图内部。

边距在视图之外。

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

图片

vinay Maneti answered 2020-08-09T14:21:59Z

2 votes

Udacity视频中的+ Nick Butcher清楚地说明了边距,填充和用例之间的区别。 这是摘录:

...如果要扩大对象的可触摸区域或背景,请使用填充,否则请使用边距...

Eugene Brusov answered 2020-08-09T14:22:24Z

1 votes

填充和边距之间的根本区别是什么?

对于差异-Rohan Khandwal分享了一个非常完美的链接。

行为会因O.S.而有所不同 和设备?

现在,如果我们正在谈论已赋予不同边距和填充的视图行为。 然后,在分辨率不同的不同设备中,它的外观肯定会有所不同。这就是为什么我们会得到不同的dimen / values / layout文件夹,它们具有各自的含义。

Sagar Shah answered 2020-08-09T14:22:58Z

0 votes

android margin和padding之间的区别在于,即使文本是您想要离开边缘多少sp,margin也不会被间隔或着色。它只是文本,而您使用它设置的颜色都是“单独的”。 但是,使用填充时,文本会像空白一样远离屏幕边缘,但是在填充时,文本会消失,并且文本和屏幕边缘之间的所有空间都会用您选择的颜色或任何文本首选项填充 成为。 这是android margin和android padding之间的区别。

Samarth Shah answered 2020-08-09T14:23:19Z

0 votes

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

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

填充增加视图的尺寸,因为没有边缘,所以没有边缘

Vivek Nayak answered 2020-08-09T14:23:49Z

0 votes

填充以视图的左,顶部,右侧和底部的像素表示。 填充可用于将视图的内容偏移特定数量的像素。

例如,左填充2将把视图的内容向左边缘的右边推2个像素。

可以使用setPadding(int, int, int, int)方法设置填充,并通过调用getPaddingLeft()、getPaddingTop()、getPaddingRight()和getPaddingBottom()进行查询。

边界是边界外部,边界与该视图旁边的其他元素之间的空间。请注意,就像填充一样,边距完全围绕内容:在顶部,底部,右侧和左侧都有边距。可以使用setMargins(int left,int top,int right,int bottom)方法设置边距。

Akta Dadhaniya answered 2020-08-09T14:24:23Z