五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ó)家法律
婺源县| 新源县| 五常市| 滨州市| 荔浦县| 保德县| 罗定市| 通城县| 聊城市| 洛阳市| 井冈山市| 敦煌市| 平乡县| 二手房| 墨玉县| 镇康县| 勐海县| 新余市| 吴桥县| 那曲县| 鱼台县| 中阳县| 吴旗县| 都昌县| 博罗县| 萝北县| 中宁县| 东阿县| 百色市| 壶关县| 江永县| 怀来县| 平顶山市| 八宿县| 宣威市| 赞皇县| 玉山县| 丰城市| 石阡县| 沧源| 石狮市|