MarginLayoutParams是专门针对有child的view的layoutParam类型,规定了margin等信息,
这里的margin不是针对view自己的,而是针对其子view来说的。
在项目中,有时候在实现一个view的位置变化时,
有时会将其放入一个作为wrapper的FrameLayout中,然后动态改变wrapper的margin,来实现子view的位置变化效果.
有一点是margin可以是负数,这样的效果是子view完全移动出了父view的范围,从而导致不会被完全显示,甚至消失.
/**
* Per-child layout information for layouts that support margins.* See
* {@link android.R.styleable#ViewGroup_MarginLayout ViewGroup Margin Layout Attributes}
* for a list of all child view attributes that this class supports.
*/
public static class MarginLayoutParams extends ViewGroup.LayoutParams {
/**
* The left margin in pixels of the child.
* Call {@link ViewGroup#setLayoutParams(LayoutParams)} after reassigning a new value
* to this field.
*/
@ViewDebug.ExportedProperty(category = "layout")
public int leftMargin;
/**
* The top margin in pixels of the child.
* Call {@link ViewGroup#setLayoutParams(LayoutParams)} after reassigning a new value
* to this field.
*/
@ViewDebug.ExportedProperty(category = "layout")
public int topMargin;
/**
* The right margin in pixels of the child.
* Call {@link ViewGroup#setLayoutParams(LayoutParams)} after reassigning a new value
* to this field.
*/
@ViewDebug.ExportedProperty(category = "layout")
public int rightMargin;
/**
* The bottom margin in pixels of the child.
* Call {@link ViewGroup#setLayoutParams(LayoutParams)} after reassigning a new value
* to this field.
*/
@ViewDebug.ExportedProperty(category = "layout")
public int bottomMargin;