View/ViewGroup/RecycleView的绘制方面

近期在了解RecyclerView中引用ViewGroup作为Header的内容(https://blog.csdn.net/zxt0601/article/details/52267325

期间突然对view、viewGroup与可以算作自定义viewGroup的recyclerView绘制的生命周期感到迷茫,所以又重新了解了一番

view(https://www.jianshu.com/p/c5785cf1fd57 && https://www.jianshu.com/p/c151efe22d0d

viewGroup(https://www.jianshu.com/p/f327511f21cf &&https://www.jianshu.com/p/a8ca7f6ebfdf

看完几篇文章后,稍作总结得出 绘制的时候是以从依附到容器开始:

1.测量大小

2.确认布局位置

3.绘制

测量大小从performMeasure开始,measure测量自己的大小,measureChild测量子组件大小

确认布局从performLayout开始,onLayout确认自己在容器里面的位置,然后再调用子组件的layout方法确认子组件在自己中的位置

最后是绘制的Draw从performDraw开始到最后调用子组件每一个View的Draw

重新整理了一番view的绘制流程后,开始也对recycleView的绘制流程有了思路

把recycleView比作viewGroup的话先是测量完本体的大小,之后就要测量子组件的大小

而子组件的数量与数据绑定在一起,所以绘制流程肯定在数据绑定之后

而添加一个viewGroup到recycleView里面作为Header的话,是在绘制之前添加一个子组件?还是在绘制完成后添加然后重新进行一次绘制流程?

而添加进来的viewGroup在没有依附view的状态已经确认了大小?作为一个以完成绘制流程的viewGroup加入到recycleView?还是仅仅是把数据布局等先绑定之后放进recycleView的绘制流程中作为子组件进行绘制?

上述view的绘制流程来说是从依附到显示的父容器开始的

所以按结论来说 是把viewGroup初始化参数后放置到recycleView的绘制流程中进行绘制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章