Я достиг этого с помощью OnScrollListener:
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
super.onScrollStateChanged(recyclerView, newState)
if (newState == SCROLL_STATE_DRAGGING) {
//do something when scroll
} else {
//do something when stop scroll
}
}
})
Вот как я использую его в своем проекте, я только что создал функцию расширения, чтобы скрыть и показать кнопку Fab:
fun RecyclerView.addFabListener(fab: FloatingActionButton) {
this.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
super.onScrollStateChanged(recyclerView, newState)
if (newState == SCROLL_STATE_DRAGGING) {
fab.hide()
} else {
fab.show()
}
}
})
}