ACTION_UP ACTION_MOVE无效
原因一
<meta charset="utf-8">
当手指滑动到设置了上面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了。
原因二
<meta charset="utf-8">
低级错误,也是因为不知道函数具体用法所犯的错误
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.
Parameters
The 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
网友评论