查资料
- 改变LayoutParam是什么原理?
LayoutParam的基类是ViewGroup.LayoutParams,只有宽高两个属性
常用的直接子类只有一个 MarginLayoutParams,他也是ViewGroup的静态内部类,多出了margin的属性。
可以看到常用的FrameLayout.LayoutParams, GridLayout.LayoutParams, LinearLayout.LayoutParams, RelativeLayout.LayoutParams,都是他的子类,包括新出的约束布局,也是
所以常见的parent view的LayoutParam都可以强转型为MarginLayoutParams。
onMeasure()方法里,取得的都是每个子view的LayoutParams,来进行测量,那么每个子view的LayoutParam都是在那里被设置的?
答案再ViewGroup的addView方法里
/**
* 重载方法1:添加一个子View
* 如果这个子View还没有LayoutParams&#x