android setonTouchEvent和setOnTouchListener中onTouch的区别

首先看下以下的代码1这段代码反应了View处理事件的过程:

在代码1中有一点首先需要明确,那就是如果dispatchTouchEvent返回值为true则本次事件被系统消耗掉(就是被控件处理了) 然后一个噺的事件会被传入,如果dispatchTouchEvent返回值为false则不会有新的事件被传入。

好我们再看下代码2中onTouch事件中的返回值,如果代码2 return true则代表什么呢代表代碼1中将不会执行 return onTouchEvent(event);语句,这也就是说这次系统事件会被消耗掉将会再次执行dispatchTouchEvent这个方法。

如果ACTION_UP事件返回True表示ACTION_UP接受松开操莋,松开操作中止;View会一直处于按下状态之后View便会响应OnLongClick事件。

如果ACTION_UP事件返回false表示ACTION_UP不接收松开操作,松开操作继续下发;因为按下与松開操作都没有被中止所以之后View就会响应OnClick事件


我要回帖

更多关于 android set 的文章

 

随机推荐