onTouch和onClick 的那些事儿
发布网友
发布时间:2024-10-22 22:30
我来回答
共1个回答
热心网友
时间:2024-12-02 14:46
事件在Android中的分发流程已清晰阐述,阅读本文前,请先阅读相关文章。
关于onTouch和onClick事件在事件传递过程中的作用,我们将从以下几个方面进行介绍。
在设置触摸事件监听时,使用OnTouchListener接口通过setOnTouchListener方法实现,而点击事件监听则使用OnClickListener接口通过setOnClickListener方法设置。onTouch方法位于View类的dispatchTouchEvent方法中调用,而onClick方法则在View的onTouchEvent方法中调用。
当设置触摸事件监听且onTouch方法返回true时,事件处理结束,不再传递给子View,onTouchEvent方法不再执行,反之返回false则onTouchEvent方法继续执行。如果onTouch方法返回false,onClick方法会执行。
在设置点击事件监听时,使用OnClickListener接口通过setOnClickListener方法实现。onClick方法调用位置位于View的onTouchEvent方法中,通过performClick方法实现点击事件的触发。
触摸事件与点击事件之间的调用顺序与它们之间的影响关系,我们将从案例分析中了解。
设置触摸事件监听,当onTouch方法返回false时,onTouchEvent方法在onTouch方法之后执行,事件被消费,接下来接收ACTION_DOWN后的所有事件。使用鼠标操作时,没有ACTION_MOVE事件。在onTouch方法返回false的情况下,onClick方法执行。
当onTouch方法返回true时,onTouchEvent方法不会执行,因此onClick方法也不会执行。
总结,onTouch方法的返回值决定了onTouchEvent方法是否执行,如果onTouch方法返回true,则onTouchEvent方法不再执行,返回false则onTouchEvent方法继续执行。onClick回调在onTouchEvent方法中调用,如果onTouchEvent不执行,则onClick也不会执行。更多内容请参阅微信公众号躬行之。