Конфликт между утилитами просмотра scrollListener и моим пользовательским onTouchListener - PullRequest
1 голос
/ 04 ноября 2019

Привет! Я использую DiscreteScrollView в качестве списка с горизонтальной прокруткой. Я добавил onTouchListener для элемента recyclerView, чтобы обнаружить swipeUp и щелкнуть, чтобы открыть карту, но у меня возникает проблема при попытке провестиангел (см. рисунок).

Для прокрутки карты вместо прокрутки используется прокрутка.

override fun onFling(
        e1: MotionEvent,
        e2: MotionEvent,
        velocityX: Float,
        velocityY: Float
    ): Boolean {
        val result = false
        try {
            val diffY = e2.y - e1.y
            val diffX = e2.x - e1.x
            if (Math.abs(diffX) > Math.abs(diffY)) {
                if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
                    if (diffX > 0) {
                        onSwipeRight()
                        Log.d("swipe", "swipe right")
                    } else {
                        onSwipeLeft()
                        Log.d("swipe", "swipe left")
                    }
                }
            } else {
                if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) {
                    if (diffY > 0) {
                        onSwipeBottom()
                        Log.d("swipe", "swipe bottom")
                    } else {
                        onSwipeTop()
                        Log.d("swipe", "swipe top")
                    }
                }
            }
        } catch (exception: Exception) {
            exception.printStackTrace()
        }

        return result
    }

Мой OnSwipeTouchListener toраспознавать пролистывания на карте

Вот ScrollLayoutManager библиотеки

Любые идеи, как я могу справиться с этим, я могу распознать это как swipeUp и не начатьпрокрутите окно просмотра.

Спасибо.

Редактировать:

Я использовал GestureDetector.SimpleOnGestureListener (), и метод onFling не сработал, поэтому я посмотрел, есть ли другиевызывается метод и видит, что вызывается метод onScroll. Я только что реализовал метод OnScroll в SimpleOnGestureListener и добавил тот же код для распознавания свайпов, теперь он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...