View的事件分发机制

xiaoxiao2021-02-27  103

点击事件的传递规则 点击事件的分发,其实就是对MotionEvent事件的分发过程,即当一个MotionEvent产生了以后,系统需要把这个事件传递给一个具体的View,这个传递过程就是分发。 三个重要的方法: public boolean dispatchTouchEvent(MotionEvent ev) 进行事件的分发 public boolean onInterceptTouchEvent(MotionEvent ev) 用来判断是否拦截某个事件 public boolean onTounchEvent(MotionEvent ev) 用来处理点击事件

上述三个方法的关系可用如下伪码表示

public boolean dispatchTouchEvent(MotionEvent e){ boolean result=false; if(onInterceptTouchEvent(e)){ //如果当前View截获事件,那么事件就会由当前View处理,即调用onTouchEvent() result=onTouchEvent(e); }else{ //如果不截获那么交给其子View来分发 result=child.dispatchTouchEvent(e); } return result; }

http://blog.csdn.net/lmj623565791/article/details/38960443中的例子可以很好的看到传递过程

转载请注明原文地址: https://www.6miu.com/read-15393.html

最新回复(0)