浅谈onTouch先执行,还是onClick执行(详解)
那当我们去点击按钮的时候,就会去调用Button类分析上述代码,第2行 如果三个条件都为真的话,就返回true,否则执行onTouchEvent,先看第一个条件mOnTouchListener!也就是说如果我们在onTouch方法里返回true,就会让这三个条件全部成立,从而整个方法直接返回true。onTouchEvent方法同样也是在view中定义的一个方法,主要是处理传递到view 的手势事件,包括ACTION_DOWN,ACTION_MOVE,ACTION_UP,ACTION_CANCEL四种事件。然后每当控件被点击时或者长按时,都会在performClick()方法里回调被点击控件的onClick方法。关于OnTouchEvent事件的层级传递。简单的说,就是当dispatchTouchEvent在进行事件分发的时候,只有前一个action返回true,才会触发后一个action。那我们可以换一个控件,将按钮替换成ImageView,然后给它也注册一个touch事件,并返回false。
下载地址
用户评论