代码之家  ›  专栏  ›  技术社区  ›  jujka

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

  •  1
  • jujka  · 技术社区  · 8 年前

    与此相关的答案很多 CoordinatorLayout FAB 但是,有时您只需要在从中向下/向上滚动事件时显示/隐藏自定义视图 RecyclerView .

    1 回复  |  直到 8 年前
        1
  •  0
  •   jujka    8 年前

    最简单的方法是添加 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()
                }
            }
        })
    }