天天看點

【Android】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

【Android】onMeasure、onLayout以及onSizeChanged方法的回調時機和回調順序

實驗結果:

總結:1.onMeasure方法會在view的位置資訊發生變化或調用。

           2.子view回調了onMeasure方法,父view一定也會回調onMeasure方法。