Android视图支持边际?

Android视图支持边际?,android,view,margin,Android,View,Margin,从开发者指南中可以看出 尽管视图可以定义填充,但它不支持任何边距。但是,视图组提供了这样的支持 但是为什么我可以在ImageView,EditView等等中设置layout\u margin属性,它们就像填充一样存在和工作 我不明白指南是怎么说的,有人能帮我理解吗?基本上,这意味着页边距是用xml为子视图定义的,但由父视图使用 从技术上讲,填充物是类视图的字段。视图本身正在View.draw()方法中使用填充。见: 边距是MarginLayoutParams类的字段。视图组使用边距来布局其子视

从开发者指南中可以看出

尽管视图可以定义填充,但它不支持任何边距。但是,视图组提供了这样的支持

但是为什么我可以在
ImageView
EditView
等等中设置
layout\u margin
属性,它们就像填充一样存在和工作


我不明白指南是怎么说的,有人能帮我理解吗?

基本上,这意味着页边距是用xml为子视图定义的,但由父视图使用

从技术上讲,填充物是类视图的字段。视图本身正在View.draw()方法中使用填充。见:

边距是MarginLayoutParams类的字段。视图组使用边距来布局其子视图。见:

编辑:

边距加载到MarginLayoutParams,然后在布局阶段使用

方法,该方法使用这些xml属性在FrameLayout中创建MarginLayoutParams:

加载裕度:


布局:

视图类不包含页边距。它包含填充,因为填充会偏移视图的内容。边距用于将视图本身从父视图组偏移。因此,边距包含在ViewGroup类中。
然而,请记住继承的原则。视图是ViewGroup类的子级。因此,它继承了视图组的属性,包括页边距。因此,当您在视图上应用边距时,它会做出响应,因为它通过继承已具有边距属性。

从第一个链接中,我看到当视图绘制时,只有填充有意义,但我认为这是因为我们可以看到的内容,我不理解边距是如何工作的,更重要的是边距的存在,我在指南中找不到边距属性,但它们可以应用于视图,对此我感到困惑,因此视图没有边距是正确的,尽管edittext扩展了视图,但它从其布局中获取边距参数,当绘制本身时,边距不被使用,但在布局中,容器使用边距来决定如何定位子视图,对吗?