画面上の指のタッチを追跡したい。だから私がしたことは、MotionEvent
トリガーしたときに位置の記録を開始することでしたがACTION_DOWN
、アクションがいつ終了したか、でACTION_CANCEL
、またはいつ終了したかをどのように知ることができACTION_UP
ますか?
それらの正確な違いは何ですか?
画面上の指のタッチを追跡したい。だから私がしたことは、MotionEvent
トリガーしたときに位置の記録を開始することでしたがACTION_DOWN
、アクションがいつ終了したか、でACTION_CANCEL
、またはいつ終了したかをどのように知ることができACTION_UP
ますか?
それらの正確な違いは何ですか?
ACTION_UP:押されたジェスチャが終了しました。モーションには、最後のリリース位置と、最後のダウンまたは移動イベント以降の中間ポイントが含まれています。
ACTION_CANCEL:現在のジェスチャは中止されました。
ACTION_CANCELは、親がモーションを所有している場合に発生します。たとえば、ユーザーがリストビューを十分にドラッグして、リストビュー内のボタンを押す代わりに、スクロールを開始した場合です。詳細については、ビューグループのドキュメントonInterceptTouchEventを参照してください。
したがって、アクションが親からドラッグされる場合はACTION_CANCELを使用し、それ以外の場合はACTION_UPを使用します。
一般ACTION_UP
に、ゲストが終了するとユーザーによってトリガーされ、ユーザーが動きの操作を完了したことを明確に示します。
一方、ACTION_CANCEL
Androidシステムによって呼び出され、ビューの1つが制御を取得したことを示しますonInterceptTouchEvent()
。これは、システムがタッチイベントの伝播を終了した結果としてtrueを返しました。
図を見てください