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的繪製流程中進行繪製

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