接着,我们发现 OnLongClick 是有返回值的,如果返回值是 false 还会接着去触发 onClick 事件,如果返回 true 的话,那么这个长按事件就直接被消费掉了( 也就是这个点击事件就不会完后传递到 OnClickListener 中去了 )。
2.4 总结100mm 时为点击,500mm 时为长按,接着触发长按事件。
再看长按事件的返回值,如果时 true 就结束。
如果时 false 那么 OnClickListener 就同样也被执行。
这就是由 obTouchEvent 产生出来的 onClick/onLongClick 的来龙去脉。
总结我们 View 的事件方法,基本上就是这么一个思路,从 dispatchTouchEvent 到 OnTouchListener 监听器,再到 onTouchEvent,接着 onTouchEvent 由产生了 onClick/onLongClick 。
如果大家感兴趣的话可以更深入的去阅读源码。
重点:学 Android 有一段时间了,我打算好好的梳理一下所学知识,包括 Activity 、Service 、BroadcastRecevier 事件分发、滑动冲突、新能优化等所有重要模块,欢迎大家关注 _yuanhao 的 博客园 ,方便及时接收更新
如果有可以补充的知识点,欢迎大家在评论区指出。
码字不易,你的点赞是我总结的最大动力!由于我在「稀土掘金」「简书」「CSDN」「博客园」等站点,都有新内容发布。所以大家可以直接关注我的 GitHub 仓库,以免错过精彩内容!
仓库地址:
超级干货!精心归纳 Android 、JVM 、算法等,各位老铁支持一下!给个 Star !
一万多字长文,加上精美思维导图,记得点赞哦,欢迎关注 _yuanhao 的 博客园 ,我们下篇文章见!