简单例子了解View的事件分发(8)

日志很长,因为不小心移动多了,触发了多个移动事件,我们会发现,满足了上述的条件,然后我们的父View确实没有触发onTouchEvent。斯国一,确实是这个样子的
第六条和第七条,上文提到过,这个不说了 ,因为ViewGroup的这个方法默认返回是false,默认不拦截。而View没有拦截方法,所以必须要处理。
第八条和第九条,处理事件的时候,view的onTouchEvent默认返回true,表示自己消耗这件事情,这个和我们上面说的默认返回时false是冲突的,这个是因为他后面补了一个条件,这它默认是不点击的,在我们上面的例子中,我们用的自定义的ViewTest,这个在没有引入讨论onClick的时候,他就是默认不可点击的,所以是false,当他可点击之后,我们在xml中设立了clickable属性,他的onTouchEvent则表示会消耗事件,返回是true,也可以理解嘛,设立了他可点击,就是想让他处理onclick事件。所以,一旦有一个Clickable或者longClickable为true,那么他的onTouchEvent就返回true。
第十条,onClick触发的前提是view点击,并且收到了down和up事件,这个上面也验证过了。

总结

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d0add469b1fd94c063e88aa5f15742b8.html