需要在 onTouchEvent() 方法中手动调用 mView.performClick() 方法来确保 ACTION_UP 事件得到触发。示例代码如下:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// Handle touch down event
break;
case MotionEvent.ACTION_MOVE:
// Handle touch move event
break;
case MotionEvent.ACTION_CANCEL:
// Handle touch cancel event
mView.performClick(); // 手动触发 ACTION_UP 事件
break;
case MotionEvent.ACTION_UP:
// Handle touch up event
mView.performClick(); // 没有被取消,依然需要触发 ACTION_UP 事件
break;
}
return true;
}