トリガーされない場所でこの問題が発生ACTION_CANCEL
しています。他のプロジェクトに実装しましたが、正常に動作しています。の後に呼び出されるACTION_UP
のは だけのようです。指がビュー内または画面外になくなったらトリガーしたかったのです。MotionEvent
ACTION_DOWN
ACTION_CANCEL
サンプル シナリオ: 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 です。