最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
佳木斯市| 土默特右旗| 浦县| 清河县| 长寿区| 巴彦淖尔市| 南溪县| 资中县| 崇明县| 铁岭市| 托克逊县| 基隆市| 紫阳县| 嘉鱼县| 阳城县| 冷水江市| 柏乡县| 康平县| 东辽县| 南安市| 芷江| 靖西县| 鲁山县| 砀山县| 塘沽区| 青田县| 麦盖提县| 太和县| 宾阳县| 那曲县| 镇坪县| 新乡市| 钦州市| 太谷县| 潍坊市| 绥中县| 莲花县| 六盘水市| 偃师市| 苍溪县| 灵宝市|