读书笔记:Android开发艺术探索之第4章 View的工作原理

来源:互联网 发布:单片机中断系统有啥 编辑:程序博客网 时间:2024/04/28 13:21

1ViewRoot的对应实现类ViewRootImpl,它是连接WindowsManager和DecorView的纽带,

ActivityThread创建完Activity,将DecorView添加到Window中通过ViewRootImpl对象和DecorView建立联系


View的绘制流程是从ViewRoot 的performTraversals开始的,流程图大概为:


DecorView图



MeasureSpec的参数:

getMode获取Mode,具体有三个

UNSPECIFIED:要多大有多大,一般用于系统测量

EXACTLY:固定大小,及LayoutParams中的match_parent,或者固定大小,如100dp

AT_MOST:View的大小不能超过父容器大小,一般相当于LayoutParams的wrap_content

View的measure中执行了onMeasure,只需要看这个方法,这个方法是测量自己本身大小的方法;

ViewGroup的measure继承自view,根据不同ViewGroup重写onMeasure,在这个里面不仅要测量自己的大小,还要递归遍历其子View的大小


ViewGroup和View的layout用来确定自身的位置,

View的onLayout是一个空实现方法。

ViewGroup的onLayout会调用子view的layout来确放置子元素,所以onLayout是一个抽象方法,根据不同的ViewGroup放置view

View的draw方法是绘制自身的内容,

ViewGroup在有背景的时候才会调用draw方法,在dispatchDraw方法中会调用子view的draw方法,然后绘制子view



阅读全文
0 0