ontouchEvent,ontouchListener,onclickListener的执行顺序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yang_niuxxx/article/details/78841105

感谢郭神:http://blog.csdn.net/guolin_blog/article/details/9097463


先总结一下


1.view在执行dispatchTouchEvent的时候先要去判断该view是否有touchListener和执行TouchListener的onTouch方法的返回值。

2.TouchListener的onTouch方法返回false,事件继续传递在dispatch方法中调用了同级的onTouchEvent方法

3.然后在onTouchEvent方法中的UP事件中判断是否注册有onClickListener,有就执行onclick方法。



文章提出的疑问。onTouchListener中返回了false为什么还能接收到ACTION_DOWN以外的事件。因为返回false之后会执行view的onTouchEvent方法。在onTouchEvent方法,只要当前view是可点击或者长按的都会返回true。


猜你喜欢

转载自blog.csdn.net/yang_niuxxx/article/details/78841105