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ù)事件不會再傳遞過來。