Fixed fast scroll button crashing while scrolling to undefined position

This commit is contained in:
Viktor De Pasquale 2019-06-16 09:00:46 +02:00 committed by John Wu
parent 70cb52b2c7
commit dd76a74e1c

View File

@ -186,9 +186,17 @@ fun setHidden(view: FloatingActionButton, hide: Boolean) {
}
@BindingAdapter("scrollPosition", "scrollPositionSmooth", requireAll = false)
fun setScrollPosition(view: RecyclerView, position: Int, smoothScroll: Boolean) = when {
smoothScroll -> view.smoothScrollToPosition(position)
else -> view.scrollToPosition(position)
fun setScrollPosition(view: RecyclerView, position: Int, smoothScroll: Boolean) {
val adapterItemCount = view.adapter?.itemCount ?: -1
if (position !in 0 until adapterItemCount) {
// the position is not in adapter bounds, adapter will throw exception for invalid positions
return
}
when {
smoothScroll -> view.smoothScrollToPosition(position)
else -> view.scrollToPosition(position)
}
}
@BindingAdapter("recyclerScrollEvent")