onMeasure、onLayout以及onSizeChanged方法的回调时机和回调顺序

onMeasure方法:作用是计算各控件的大小。系统在渲染页面时会调用各view的onMeasure方法,各控件的onMeasure方法执行顺序是从内到外,即先调用子控件的onMeasure方法,在执行父布局的onMeasure方法。

onLayout方法:根据获取到的尺寸信息渲染这个view。onMeasure方法执行完后会回调onLayout方法。onSizeChanged方法执行完也会回调onLayout方法。执行顺序也是从内到外,即先调用子控件的onLayout方法,在执行父布局的onLayout方法。

会触发这几个回调方法的方法:
removeView(): 子onMeasure --> 父onMeasure -->子onLayout-->父onLayout
addView():子onMeasure --> 父onMeasure -->子onLayout-->父onLayout
onMeasure、onLayout以及onSizeChanged方法的回调时机和回调顺序_第1张图片

实验结果:

总结:1.onMeasure方法会在view的位置信息发生变化或调用。
           2.子view回调了onMeasure方法,父view一定也会回调onMeasure方法。
           3.onMeasure方法回调后,一定会回调onLayout方法。

你可能感兴趣的:(view回调函数,控件,布局,onMeasure,onLayout)