Привет! Я использую DiscreteScrollView в качестве списка с горизонтальной прокруткой. Я добавил onTouchListener для элемента recyclerView, чтобы обнаружить swipeUp и щелкнуть, чтобы открыть карту, но у меня возникает проблема при попытке провестиангел (см. рисунок).
![](https://i.stack.imgur.com/xFYDg.jpg)
Для прокрутки карты вместо прокрутки используется прокрутка.
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 и добавил тот же код для распознавания свайпов, теперь он работает.