在Android中,ViewGroup布局更新機(jī)制是通過調(diào)用requestLayout()
和invalidate()
方法來觸發(fā)的。
requestLayout()
: 當(dāng)ViewGroup的子View的大小或位置發(fā)生變化時(shí),需要調(diào)用requestLayout()
方法來請(qǐng)求重新布局。該方法會(huì)觸發(fā)onMeasure()
和onLayout()
方法的調(diào)用,從而重新計(jì)算子View的大小和位置。
invalidate()
: 當(dāng)ViewGroup的子View需要重新繪制時(shí),可以調(diào)用invalidate()
方法來請(qǐng)求重繪。該方法會(huì)觸發(fā)onDraw()
方法的調(diào)用,從而重新繪制子View。
通過調(diào)用這兩個(gè)方法,可以實(shí)現(xiàn)ViewGroup的布局更新和重繪。同時(shí),Android系統(tǒng)也會(huì)根據(jù)需要自動(dòng)觸發(fā)布局更新和重繪,比如在調(diào)用setVisibility()
方法時(shí)會(huì)觸發(fā)布局更新。