Android事件分发机制

 


经过图片,咱们可以知道 
全部disPatchTouchEvent()方法(除Activity) 
return true 事件消费 
retur false 事件回传父类的onTouchEvent() 
return super() 事件向下传递 
全部的dispatchTouchEvent()和onTouchEvent()方法,一旦return true,则事件就被消费,没有谁可以接收到这个事件了 
 spa

 


全部的dispatchTouchEvent()和onTouchEvent()方法return false的时候,都会回传给父控件的onTouchEvent()方法处理 
 blog

 


若是事件不中断,则整个事件为U型传递,也就是一直return super() 
 事件

 


onInterceptTouchEvent()方法的做用,每一个ViewGroup都会有onInterceptTouchEvent()方法来判断是否须要拦截事件,若是返回true,则会将事件传递到本身的onTouchEvent()方法中,若是返回false和super(),则表示不拦截,向下继续传递事件 
 图片

 


ViewGroup怎么将事件传递到本身onTouchEvent()呢,ViewGroup的disPatchTouchEvent()方法 
return true,则事件消费,再也不传递 
return false,则事件传递到父控件的onTouchEvent()方法 
return super() ,将事件传递到onInterceptTouchEvent()方法,而后return true以后,才能本身处理本身的onTouchEvent 
View怎么将事件传递到本身的onTouchEvent()呢?View 没有onInterceptTouchEvent()方法,只有disPatchTouchEvent()方法 
return true则事件消费 
return false 则事件传给ViewGroup的onTouchEvent()方法 
return super()则事件传递给本身的onTouchEvent()it

相关文章
相关标签/搜索