Обрабатывать только горизонтальное движение с помощью onTouchEvent

Я переопределяю onTouchEvent в макете и хочу обрабатывать только горизонтальное движение.

то есть, если происходит свайп вправо или влево, я покажу следующий/предыдущий пост, и если произойдет какое-либо вертикальное движение, я ничего не буду делать, и произойдет родительская прокрутка.

Как я могу это сделать?

switch (e1.getAction()) {
            case MotionEvent.ACTION_DOWN:
                offsetX = 0;
                offsetY = 0;
                startTouchPoint = new Point((int) e1.getX(), (int) e1.getY());
                break;
            case MotionEvent.ACTION_MOVE:
                movement = new Point(Math.abs((int) e1.getX() - startTouchPoint.x), Math.abs((int) e1.getY() - startTouchPoint.y));
                if (movement.y < movement.x) { // Horizontal movement

                    // Custom code to move to prev/next page.
                } else { // Vertical movement
                   // I need android to handle this.
                }

person Deviprasad Das    schedule 29.05.2016    source источник


Ответы (1)


onTouchEvent возвращает логическое значение.

Просто верните True, если событие было обработано, иначе false.

См. https://developer.android.com/reference/android/view/View.html#onTouchEvent(android.view.MotionEvent) для получения подробной информации.

person Chebyr    schedule 29.05.2016