Как предотвратить событие касания, если в Android происходит прокрутка?

После добавления событий касания мои события смахивания не запускаются. Как я могу предотвратить событие касания, если происходит пролистывание? Вот мой код:

    favorites.setOnTouchListener(new OnSwipeTouchListener(getApplicationContext()) {
        public void onSwipeTop() {
            Toast.makeText(MainActivity.this, "top", Toast.LENGTH_SHORT).show();
        }
        public void onSwipeRight() {

            Toast.makeText(MainActivity.this, "right", Toast.LENGTH_SHORT).show();
        }
        public void onSwipeLeft() {

            Toast.makeText(MainActivity.this, "left", Toast.LENGTH_SHORT).show();
        }
        public void onSwipeBottom() {
            Toast.makeText(MainActivity.this, "bottom", Toast.LENGTH_SHORT).show();
        }

        public boolean onTouch(View v, MotionEvent event) {
            Toast.makeText(MainActivity.this, "onTouch", Toast.LENGTH_SHORT).show();
            return true;
        }
    });
}

person Figen Güngör    schedule 28.08.2014    source источник


Ответы (1)


Похоже, OnSwipeTouchListener — это ваш определенный класс, который реализует onTouchListner. И вы переопределяете метод onTouch().

Все события касания, произошедшие в представлении избранного, будут обрабатываться этим листером с помощью метода onTouch(). Суть в том, что вы возвращаете true в этом методе, поэтому следующий метод обратного вызова больше не будет вызываться.

Кстати, обработка событий касания сложна. Мне любопытно, где находится код обнаружения сенсорного события.

person peacepassion    schedule 15.09.2014