Android: определить, когда касание завершено - PullRequest
1 голос
/ 17 апреля 2020

Я использую 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

Как я могу определить, когда пользователь завершил событие касания через некоторое время?

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