ジェスチャーが検出されて処理されるプログラムを作成しようとしています。onFling と onScroll イベントを機能させることができました (これらのイベントは、Activity 内のリスナー クラスに実装されています)。ただし、スワイプ (onFling) を行うたびに、onScroll() 関数内のコードも実行されます。例えば:
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
//do something here, for example change background color to red
return true;
}
@Override
public boolean onScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
{
//do something, for example vibrate
return true;
}
この場合、スクロールするとデバイスが振動しますが、問題ありません。しかし、スワイプして onFling が実行されると、色が赤に変わりますが、振動するので、それは望ましくありません。
これを防ぐ方法はありますか?スワイプが発生すると onFling() イベントのコードのみが実行され、 onScroll() はスクロールが実際に発生した場合にのみ起動します。ジェスチャーを別々にスワイプしますか?
編集: GestureDetector クラスを使用しています。