让你分分钟明白onTouchEvent事件分发
首先確定有三種,由內向外依次為:
1、View自己的onTouchEvent
2、ViewGroup的onTouchEvent,由于要管理它的子View的onTouchEvent,所以多了個onInterceptTouchEvent(鼓勵重載這個而不是dispatchTouchEvent,因為后者是對ViewGroup共性的提取,前者才是針對個例)
3、Activity的onTouchEvent
三者都是先處理setOnTouchEvent的onTouch事件,返回true表示不想下傳遞,就不進入到onTouchEvent中了
先說ViewGroup的onInterceptTouchEvent,兩種情況:
??? ①、返回值為True,代表攔截這次事件,直接進入到ViewGroup的onTouchEvent中,就不會進入到View的onTouchEvent了
??? ②、返回值為False,代表不攔截這次事件,不進入到ViewGroup的onTouchEvent中,直接進入到View的onTouchEvent中
再說三者的onTouchEvent:
?? ①、View的onTouchEvent返回為false表示view處理完onTouchEvent后不消費這次事件,那么這個事件就會繼續傳遞到他的上一層ViewGroup的onTouchEvent事件中,返回true的話就傳遞完畢,進入不到ViewGroup的onTouchEvent中了
? ②、ViewGrop的onTouchEvent返回為false表示這個ViewGroup處理完onTouchEvent后不消費這次事件,這個事件就會繼續傳遞到activity的onTouchEvent中,返回為true的話就傳遞完畢,進入不到activity的onTouchEvent中了
? ③、activity的onTouchEvent,就這樣吧 `(*∩_∩*)′
?
總之,如果最里層的返回false就會交給他的上一層處理,否則就會消費這次事件,停止傳遞,over!
轉載于:https://www.cnblogs.com/gyzboy/p/4518188.html
總結
以上是生活随笔為你收集整理的让你分分钟明白onTouchEvent事件分发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XMLHTTP使用具体解释
- 下一篇: 1.4操作系统的变革