美文网首页
View绘制流程记录

View绘制流程记录

作者: bogerLiu | 来源:发表于2020-09-27 16:21 被阅读0次

View绘制流程 简单介绍

Dialog为例子

Dialog构造方法 setWindowManager 创建 WindowManagerImpl 至此截止
dialog show()方法 内部会调用 onstart mWindowManager.addView()方法

继续看 mWindowManager.addView mWindowManager 实现类是 构造方法内创建的WindowManagerImpl

WindowManagerImpl具体方法实现是由 WindowManagerGlobal真实操作

那么 addView要看 WindowManagerGlobal的实现

addView内部 创建了ViewRootImpl root 并调用了 ViewRootImpl.setView

setView 内部调用了 requestLayout

requestLayout 内部则调用了scheduleTraversals

scheduleTraversals 熟悉的方法 就是 mChoreographer.postCallback(Choreographer.CALLBACK_TRAVERSAL, mTraversalRunnable, null);

mTraversalRunnable 开始了 doTraversal 也就是 performTraversals
performTraversals 这个方法就表示了 开始绘制View 了

里面也就是 performMeasure performLayout performDraw

相关文章

网友评论

      本文标题:View绘制流程记录

      本文链接:https://www.haomeiwen.com/subject/jmrluktx.html