1

私は Blackberry Touch Event を使用しています。 を処理しTouchEvent.MOVE、画像のカルーセルを移動して、TouchEvent.UP特定のアクションを生成する必要があります。TouchEvent.DOWNTouchEvent.CLICK

私の問題は、touchEvent()メソッドが数回呼び出されていることです。どうすればこれを防ぐことができますか? 挙動がおかしくなっているからです。

例: イベントをキャプチャしたいだけのTouchEvent.CLICK場合、UP-DOWN-MOVE-CLICK が次々とトリガーされます。

私のコードは次のことを行います:

protected boolean touchEvent(TouchEvent message) {

    if (message.getEvent() == TouchEvent.CLICK) {

        //CHANGE THE CONTENT OF A FIELD

        return true;
    } else if ((message.getEvent() == TouchEvent.MOVE)
            || (message.getEvent() == TouchEvent.UP)
            || (message.getEvent() == TouchEvent.DOWN)) {

        //DELETE THE FIELD
                            //MOVE A CAROUSEL OF IMAGES
    } else {
        return false;
    }
}

public void moverTouch(int dx) {
    //ADD THE FIELD PREVIOUSLY DELETED
}

ご覧のとおり、CLICKイベントがキャプチャされたときにフィールドの内容を変更する必要がありますが、MOVEまたはUPまたはイベントがキャプチャされたときに、マネージャーからDOWNそれを削除し、画像のカルーセルを操作してから、Field以前に削除したフィールドを再度追加します。

カルーセルの移動部分は正常に機能しますが、イベントだけをキャプチャしようとするCLICKと、他のイベントもトリガーされますが、moverTouch(画像のカルーセルに実際の動きがないため)関数がトリガーされず、結局その内容を更新する必要がある削除されたフィールドを使用します。

4

1 に答える 1

3

概要:

タッチジェスチャ(ギャラリー画像をスクロールするスワイプジェスチャのようなものを「聞いている」と思います)を「通常の」タッチイベント(具体的TouchEvent.CLICKには、クリックしたものに「特定のアクション」を適用するために処理する必要がある)と区別する必要があると思います画像)。

TouchEventがジェスチャを表すかどうかを決定するために、TouchEvent.GESTURE定数があります。次に、TouchGestureを呼び出すことで、それが正確に何を表しているかを知ることができTouchEvent.getGesture()ます。

タッチ ジェスチャのサンプル コードは、こちらで確認できます。

于 2013-05-29T17:33:04.173 に答える