measure是一個(gè)final類型的方法,內(nèi)部調(diào)用了onMeasure方法,View對(duì)onMeasure做了統(tǒng)一的實(shí)現(xiàn),但是ViewGroup沒有重寫View的onMeasure方法,因?yàn)閂iewGroup的子類有不同的布局特性,這導(dǎo)致它們的測(cè)量細(xì)節(jié)各不相同,所以ViewGroup無法做統(tǒng)一實(shí)現(xiàn)。
layout方法用來確定View本身的位置,而onLayout方法則會(huì)確定所有子元素的位置,因?yàn)閛nLayout方法的具體實(shí)現(xiàn)和具體的布局相關(guān),所以View跟ViewGroup均沒有真正實(shí)現(xiàn)onLayout方法。layout方法中會(huì)調(diào)用onLayout方法。
總結(jié):View實(shí)現(xiàn)了onMeasure方法,但是ViewGroup沒有重寫該方法。
View跟ViewGroup均沒有真正實(shí)現(xiàn)onLayout方法,但是ViewGroup僅僅把onLayout重寫成了一個(gè)抽象方法。