Я использую viewpager2 в моем приложении. Я включил автоматический слайд, используя rxjava2 (наблюдаемый интервал). Я хочу остановить автоматическое скольжение, когда пользователь дотрагивается до пейджера, а после того, как прикосновение завершается, запускается автоматическое скольжение. Но я не могу найти правильный способ обнаружить событие касания fini sh. Я пробовал action_up, но он срабатывает только при быстром прикосновении, как щелчок. Он не обнаруживает, когда пользователь нажимает 2 секунды и завершает sh касание.
Observable.interval(SLIDER_DELAY, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
if (!homeAdapter.touchStatus()) {
if (viewPagerSlider.currentItem < homeAdapter.itemCount - 1) {
viewPagerSlider.setCurrentItem(
viewPagerSlider.currentItem + 1,
true
)
} else {
viewPagerSlider.setCurrentItem(0, true)
}
}
}
HomeAdapter
itemView.setOnTouchListener { v, event ->
when (event.action) {
MotionEvent.ACTION_DOWN -> isTouched = true
MotionEvent.ACTION_UP -> isTouched = false
else -> {}
}
true
}
fun touchStatus() = this.isTouched
Как я могу определить, когда пользователь завершил событие касания через некоторое время?