У меня есть фрагмент, NestedScrollView - это макет root. Мне нужно прокрутить середину этого фрагмента, а затем нажать некоторое значение ACTION_BUTTON, которое должно вызвать автоматическую прокрутку до верхней части фрагмента и вызвать какое-либо действие, но только после фрагмента (NestedScrolView) с богатой верхней частью (для плавной анимации).
Я пишу эту функцию:
fun NestedScrollView.scrollTop(callback: () -> Unit) {
setOnScrollChangeListener { _: NestedScrollView?, _: Int, scrollY: Int, _: Int, _: Int ->
if (scrollY == 0) {
callback.invoke()
}
}
fullScroll(View.FOCUS_UP)
}
, но она не работает, если я нажимаю ACTION_BUTTON, когда фрагмент уже наверху.
А также, я получаю некоторое мигание на секунду перед обратным вызовом вызывается.
Итак, каков наилучший способ обработки клика по ACTION_BUTTON в моем случае? Существуют ли функции для NestedScrollView с обратными вызовами, вызываемыми после достижения вершины и как обрабатывать ситуацию, когда я уже нахожусь в верхней части экрана (а OnScrollChangeListener не вызывает)?