事件分發(fā)核心原理

1.事件分發(fā)原理: 責(zé)任鏈模式,事件層層傳遞,直到被消費(fèi)。

2.View 的?dispatchTouchEvent?主要用于調(diào)度自身的監(jiān)聽器和 onTouchEvent。

3.View的事件的調(diào)度順序是 onTouchListener > onTouchEvent > onLongClickListener > onClickListener 。

4.不論 View 自身是否注冊點(diǎn)擊事件,只要 View 是可點(diǎn)擊的就會消費(fèi)事件。

5.事件是否被消費(fèi)由返回值決定,true 表示消費(fèi),false 表示不消費(fèi),與是否使用了事件無關(guān)。

6.ViewGroup 中可能有多個 ChildView 時,將事件分配給包含點(diǎn)擊位置的 ChildView。

7.ViewGroup 和 ChildView 同時注冊了事件監(jiān)聽器(onClick等),由 ChildView 消費(fèi)。

8.一次觸摸流程中產(chǎn)生事件應(yīng)被同一 View 消費(fèi),全部接收或者全部拒絕。

9.只要接受 ACTION_DOWN 就意味著接受所有的事件,拒絕 ACTION_DOWN 則不會收到后續(xù)內(nèi)容。

10.如果當(dāng)前正在處理的事件被上層 View 攔截,會收到一個 ACTION_CANCEL,后續(xù)事件不會再傳遞過來。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容