如何在RecyclerView滚动条上显示或隐藏视图

时间:2018-08-14 13:53:49

标签: android android-recyclerview kotlin android-coordinatorlayout

CoordinatorLayoutFAB相关的答案很多,但是有时您只需要在RecyclerView上的向下/向上滚动事件时显示/隐藏自定义视图即可。

1 个答案:

答案 0 :(得分:0)

最简单的方法是在您的回收站视图中添加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()
            }
        }
    })
}