view分发事件之监听无效

ACTION_UP ACTION_MOVE无效
原因一

当手指滑动到设置了上面Touch监听器的ImageView时,总是打印不出来ACTION_MOVE这里,很明显是根本没有进去,后来各种查问题都查不到,因为ACTION_DOWN是可以进入的,但是ACTION_MOVE和ACTION_UP却不行,已经不是代码的问题了。各种查找才发现,要把设置监听的这个View的属性设置成 [Android](http://lib.csdn.net/base/android) Android:clickable="true" 这样才可以响应ACTION_MOVE和ACTION_UP了。

【view分发事件之监听无效】原因二
低级错误,也是因为不知道函数具体用法所犯的错误public boolean onTouchEvent( [MotionEvent](http://../reference/android/view/MotionEvent.html) MotionEvent.event)Since: [API Level 1](http://../guide/appendix/api-levels.html#level1) Implement this method to handle touch screen motion events.ParametersThe motion event. ReturnsTrue if the event was handled, false otherwise.这个函数返回true代表这个事件已经做完,可以响应下一个事件而系统的 onTouchEvent(),预设使用Oeverride这个方法,通常情況下去呼叫super.onTouchEvent()并传回布林值。但是这里要注意一点,预设如果去呼叫super.onTouchEvent()則很有可能super里面并没做任何事,并且回传false回來,一旦回传false回來,很可能后面的event (例如:Action_Move、Action_Up) 都会收不到了,所以为了确保保后面event能順利收到,要注意是否要直接呼super.TouchEvent()。所以,一般可以直接返回true

    推荐阅读