Как отключить действие onListItemClick (), если действие gestDetector произошло - PullRequest
0 голосов
/ 29 февраля 2012

Я прочитал пост: Обнаружение жестов Fling на макете сетки и реализовал обнаружение жестов. Но у меня есть следующая проблема. После выполнения действия onFling () вызывается onListItemClick () . Как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

Проблема была в методе onFling () . Этот метод должен возвращать true , если операция успешно завершена, в противном случае вызывается onClickItemClicked ()

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
        float velocityX, float velocityY) {
    if (e2.getAction()!=MotionEvent.ACTION_UP){

        return false;
    }

    try {
        float diffAbs = Math.abs(e1.getY() - e2.getY());
        float diff = e1.getX() - e2.getX();

        if (diffAbs > SWIPE_MAX_OFF_PATH)
            return false;

        // Left swipe
        if (diff > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
            listener.onLeftSwipe();

            // Right swipe
        } else if (-diff > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
            listener.onRightSwipe();
        }
        return true;
    } catch (Exception e) {
    }
    return false;
}
0 голосов
/ 29 февраля 2012

Вы можете попробовать

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
   view.requestDisallowInterceptTouchEvent(true);
   .....
   view.requestDisallowInterceptTouchEvent(false);
}

Может быть, помогает

...