最简单的方法是添加
RecyclerView.OnScrollListener
这个解决方案非常简单,效果也相当不错,另外,您还可以通过
threshold
属性,它是RCV高度的百分比。
fun RecyclerView.hideShowScrollListener(view: View, threshold: Double = .5) {
this.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
val thresholdValue = (recyclerView?.height ?: 0) / 100 * threshold
if (dy > thresholdValue && view.visibility == View.VISIBLE) {
view.gone()
} else if (dy < -thresholdValue && view.visibility != View.VISIBLE) {
view.visible()
}
}
})
}