内容来自HenCoder,本文属于个人总结
二、View的测量Measure
父View的measure方法会调用子View的measure方法,让子View进行自身的测量,子View如果不是ViewGroup会调用自身的measure过程会测量出自身尺寸和位置并保存起来,在后面回传给父View,父View会根据子View的尺寸来调整自身的大小。
注意:measure方法做测量的预处理工作,实际是由onMeasure方法进行测量
三、View的布局
当父View触发layout方法进行布局时,会触发所有子View的onLayout方法,并将之前测量后保存下来的子View测量结果传递给子View让他们进行自我布局。
四、重写onMeasure
修改已有布局的测量结果。
1.在onMeasure里面调用super.onMeasure(),这样会调用控件原始的测量方法;
2.通过getMeasureWidth获取到super.onMeausre测得到的结果进行修改
3.在通过setMeasureDimension重新赋值