Android事件分发机制,一看就懂

网上搜索Android事件分发机制,要不是说了一大堆不知道在说什么,要不是就是错的,真是服了。
几句话就可以概括的事情

**1.**点击屏幕时产生MotionEvent.action_down,action_move,action_up消息,从上往下调用dispatchTouchEvent传递,view调用onTouchEvent判断是否消费事件,viewGroup调用onInterceptTouchEvent判断是否拦截事件,如果拦截则调用自己的onTouchEvent判断是否消费。
**2.**onTouchEvent返回true代表事件被消费,后续move和up事件将继续传递给该view,不再向下传递,完成一次事件的分发,返回false表示不消费事件。
**3.**如果最后都没有view消费事件,就向上冒泡调用父类的onTouchEvent,判断是否消费,如果最后都没有view消费,就停止传递消息,表示无效事件
**4.**如果子view正在处理事件的过程中,事件被父view拦截,或被父view移除,则产生action_cancel消,后面的消息不在传递

猜你喜欢

转载自blog.csdn.net/a1663049254/article/details/132026197