我在应用程序中使用viewpager2。我使用rxjava2(可观察的间隔)启用了自动滑动。我想在用户触摸ViewPager并在触摸完成后开始自动滑动时停止自动滑动。但是我找不到检测触摸完成事件的正确方法。我尝试了action_up,但仅在像click这样的快速触摸时才触发。无法检测到用户何时触摸2秒并完成触摸。
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
如何检测一段时间后用户何时完成触摸事件?