5

ジェスチャーが検出されて処理されるプログラムを作成しようとしています。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 クラスを使用しています。

4

1 に答える 1

0

を使用していると思われますGestureDetector

onScroll(...)その前にスクロールが発生すると、フリングは発生しませんonFling(...)onFling(...)ユーザーが画面から指を離し ( ACTION_UP)、十分な速度が生成されると、が呼び出されます。

于 2013-01-10T10:16:32.827 に答える