OnTouchListener监听不到MotionEvent.ACTION_UP/MOVE
1.UP和MOVE都监听不到
private void test() {
imageView.setOnTouchListener(new Listener());
}
private final class Listener implements View.OnTouchListener {
private static final String TAG = "Listener";
private String temp = "默认值";
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_POINTER_DOWN:
temp = "ACTION_POINTER_DOWN";
break;
case MotionEvent.ACTION_POINTER_UP:
temp = "ACTION_POINTER_UP";
break;
case MotionEvent.ACTION_UP:
temp = "ACTION_UP";
break;
case MotionEvent.ACTION_DOWN:
temp = "ACTION_DOWN";
break;
case MotionEvent.ACTION_MOVE:
temp = "ACTION_MOVE";
break;
default:
temp = "默认值";
break;
}
Log.d(TAG, "触发行为: " + temp);
Log.d(TAG, "手指个数: " + event.getPointerCount());
return false;
}
}
2.UP无法监听
int action = motionEvent.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
Log.d("MainActivity1", "DOWN");
mTouchMoveStarY = motionEvent.getY();
return true;
case MotionEvent.ACTION_MOVE:
Log.d("MainActivity1", "MOVE");
float y = motionEvent.getY();
if (y >= mTouchMoveStarY) {
float moveSize = y - mTouchMoveStarY;
float progress = moveSize >= TOUCH_MOVE_MAX_Y ? 1 : moveSize / TOUCH_MOVE_MAX_Y;
//myView.setProgress(progress);
}
return true;
case MotionEvent.ACTION_UP:
Log.d("MainAcivity1", "UP");
return true;
default:
}
return false;
3.正常
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
temp = "ACTION_UP";
return true;
case MotionEvent.ACTION_DOWN:
temp = "ACTION_DOWN";
return true;
case MotionEvent.ACTION_MOVE:
temp = "ACTION_MOVE";
break;
default:
temp = "默认值";
return true;
}
Log.d(TAG, "触发行为: " + temp);
Log.d(TAG, "手指个数: " + event.getPointerCount());
return true;