onMeasure方法:
作用是计算各控件的大小。系统在渲染页面时会调用各view的onMeasure方法,各控件的onMeasure方法执行顺序是从内到外,即先调用子控件的onMeasure方法,在执行父布局的onMeasure方法。
onLayout方法:
根据获取到的尺寸信息渲染这个view。onMeasure方法执行完后会回调onLayout方法。onSizeChanged方法执行完也会回调onLayout方法。执行顺序也是从内到外,即先调用子控件的onLayout方法,在执行父布局的onLayout方法。
会触发这几个回调方法的方法:
- removeView(): 子onMeasure –> 父onMeasure –> 子onLayout –> 父onLayout
- addView(): 子onMeasure –> 父onMeasure –> 子onLayout –> 父onLayout
总结:
- 1.onMeasure方法会在view的位置信息发生变化时调用。
- 2.子view回调了onMeasure方法,父view一定也会回调onMeasure方法。
- 3.onMeasure方法回调后,一定会回调onLayout方法,之后一定会调用ondraw方法。 这个就是 测量,排版,绘制.