結(jié)論
- dispatchTouchEvent国撵,onTouchEvent,
return true是終結(jié)事件傳遞缸夹;
return false 是回溯到父View的onTouchEvent方法莽使。 - ACTION_MOVE硝桩、ACTION_UP總結(jié):
**ACTION_DOWN事件在哪個(gè)控件消費(fèi)了(return true), 那么ACTION_MOVE和ACTION_UP就會(huì)從上往下(通過dispatchTouchEvent)做事件分發(fā)往下傳念逞,就只會(huì)傳到這個(gè)控件困食,不會(huì)繼續(xù)往下傳,如果ACTION_DOWN事件是在dispatchTouchEvent消費(fèi)翎承,那么事件到此為止停止傳遞硕盹,如果ACTION_DOWN事件是在onTouchEvent消費(fèi)的,那么會(huì)把ACTION_MOVE或ACTION_UP事件傳給該控件的onTouchEvent處理并結(jié)束傳遞审洞。
onInterceptTouchEvent()的作用以及何時(shí)會(huì)被調(diào)用
為什么onInterceptTouchEvent()方法只接收到來ACTION_DOWN事件?需要處理ACTION_MOVE,ACTION_UP等等事件嗎?
當(dāng)我們?cè)趏nInterceptTouchEvent()方法中返回false莱睁,且子View的onTouchEvent返回true的情況下,onInterceptTouchEvent方法才會(huì)收到后續(xù)的事件芒澜。
ViewGroup的onInterceptTouchEvent方法仰剿,onTouchEvent方法以及View的onTouchEvent方法之間的事件傳遞流程
onTouchEvent收到ACTION_DOWN,是否一定能收到ACTION_MOVE,ACTION_UP...? 收到了ACTION_MOVE痴晦,能否說明它已經(jīng)收到過ACTION_DOWN?
讓ViewGroup支持click事件