文章目录
ViewTree:组合模式+责任链模式
View {
ViewParent mParent;
}
ViewGroup extends View implements ViewParent{
View[] mChildren;
}
组合模式(树)
ViewTree由ViewGroup和View组成,是树状结构
ViewGroup继承View
ViewGroup,可以持有一个View数组
责任链模式(链表)
ViewTree中的每个View(除树顶),都有一个父ViewGroup
ViewTree中的事件处理
测量、布局、绘制
ViewRootImpl依次完成整个ViewTree的测量、布局、绘制
ViewRootImpl.performTraversals
测量的事件处理
ViewTree自顶而下 ,处理然后向下传递
View的measure和onMeasure
class View {
void measure(int widthMeasureSpec, int heightMeasureSpec) {
onMeasure(widthMeasureSpec, heightMeasureSpec);
}
void