我遇到了這個問題,其中ACTION_CANCEL
沒有被觸發,我在其他項目中實現了它,它工作正常。看起來ACTION_UP
是在ACTION_DOWN
之後調用的唯一的MotionEvent
。一旦我的手指不在視圖中或屏幕外,我想要觸發ACTION_CANCEL
。MotionEvent.ACTION_CANCEL在onTouch過程中沒有觸發
示例場景:我點擊這是一個的LinearLayout順便說一句,在ACTION_DOWN
其背景變爲「點擊/變暗」的圖像版本,並且在ACTION_UP
被觸發其背景變回默認的圖像僅在視圖手指位於LinearLayout內。現在的問題是,當我按下它並將手指放在屏幕上時,將手指拖出LinearLayout,ACTION_UP
仍然不應該觸發。
這裏是我的代碼:
dimView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(final View view,
final MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
Log.d("TAG", "DOWN");
return true;
} else if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
Log.d("TAG", "UP");
return true;
} else if (motionEvent.getAction() == MotionEvent.ACTION_CANCEL) {
Log.d("TAG", "CANCEL");
return true;
}
return false;
}
});
其中:dimView是LinearLayout中
儘管如此,在測試過程中'MotionEvent.ACTION_CANCEL'仍然沒有被觸發。 –