国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

DEVLOG 10.18 淺析View#invalidate

2021-10-18 16:49 作者:房頂上的鋁皮水塔  | 我要投稿

從源碼的角度簡(jiǎn)單分析一下View#invalidate的作用,并且做出對(duì)于以下問題的回答:

  1. 簡(jiǎn)述View#invalidate過程?

  2. View#invalidate刷新只和當(dāng)前的View產(chǎn)生關(guān)系嗎?會(huì)不會(huì)和它的父容器產(chǎn)生關(guān)系呢?

簡(jiǎn)述View#invalidate過程?

如圖所示,我們先看看View#invalidate的調(diào)用鏈,從調(diào)用鏈上我們可以明確的發(fā)現(xiàn),View的刷新過程是會(huì)涉及到ViewGroup的。View的刷新過程會(huì)從當(dāng)前View開始,獲取當(dāng)前View的父容器,在通過這個(gè)父容器逐級(jí)向上,直到ViewRootImpl。在刷新過程中,在ViewGroup#invalidateChildInParent中,會(huì)計(jì)算當(dāng)前的View和父容器View的并集。

ViewRootImpl最后會(huì)調(diào)用scheduleTraversal,然后再開啟三大流程。


ViewGroup#invalidateChild這個(gè)方法使用了do-while循環(huán),不斷回溯尋找找當(dāng)前View的父容器。因?yàn)閂iewRootImpl也是ViewParent,所以找到最后會(huì)調(diào)用ViewRootImpl#invalidateChild。



DEVLOG 10.18 淺析View#invalidate的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
政和县| 华蓥市| 东莞市| 云浮市| 大荔县| 太仆寺旗| 许昌市| 柳江县| 大城县| 湘潭县| 子长县| 互助| 陵川县| 抚松县| 禹城市| 始兴县| 宜宾市| 巴青县| 河间市| 清徐县| 阿拉善右旗| 安庆市| 霍山县| 武冈市| 广水市| 耒阳市| 独山县| 德阳市| 德庆县| 石首市| 尉氏县| 静安区| 卓资县| 昌平区| 白水县| 岳池县| 西畴县| 长沙市| 介休市| 洪洞县| 维西|