invalidate 三部曲序
由于整个invalidate()
周期较长,继续深入会涉及屏幕刷新等底层知识,所以我们会分为三个部分来讲,分别为View发起绘制、系统处理绘制请求的逻辑、View执行真实绘制。
时序图
以scheduleTraversals()
为第一个分割点,以doFrame()
为第二个分割点,对应时序图的序列分别为:
- View 发起绘制: 1 - 8
- 系统处理绘制请求的逻辑: 9 - 20
- View 执行真实绘制: 21 - 41
目录
invalidate 三部曲序