Berroterán :
I have a recycler view and I want to capture the event when the user finishes scrolling; which I assume is when the user lifts his finger from the screen, I have tried the nItemTouchListener [onTouchEvent] event but I have not been successful, in fact the event does not fire, any ideas?
Thanks!
Rinat Suleimanov :
I've reached it using 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
}
}
})
Here is how I use it in my project, I've just created the extension function to hide and show Fab button:
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()
}
}
})
}
Guess you like
Origin http://10.200.1.11:23101/article/api/json?id=393556&siteId=1