先来看下代码
一、查看夏目
1. 自定义控件public class CustomViewGroup extends ViewGroup {
......
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
// 遍历所有子视图,进行measure操作
for (int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
if (child != null && child.getVisibility() != View.GONE) {
measureChild(child, widthMeasureSpec, heightMeasureSpec);
// 支撑子视图设置的android:layout_margin属性
MarginLayoutParams layoutParams = (MarginLayoutParams) child.getLayoutParams();
int marginLeft = layoutParams.leftMargin;
}
}
setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
for (int i = 0; i < getChildCount(); i++) {
View childView = getChildAt(i);
// 只为最简略代码复现BUG,所有子视图都随意放
childView.layout(left, top, left + childView.getMeasuredWidth(), top + childView.getMeasuredHeight());
}
}
}public class CustomV