Sometimes, all items of the recyclerView are already visible to the user.
In this case, it wouldn\'t matter to the user to see overscroll effect, be
Since android:overScrollMode="ifContentScrolls"
is not working for RecyclerView
(see https://issuetracker.google.com/issues/37076456) I found some kind of a workaround which want to share with you:
class MyRecyclerView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : RecyclerView(context, attrs, defStyleAttr) {
override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
super.onLayout(changed, l, t, r, b)
val canScrollVertical = computeVerticalScrollRange() > height
overScrollMode = if (canScrollVertical) OVER_SCROLL_ALWAYS else OVER_SCROLL_NEVER
}
}