【发布时间】:2019-01-21 09:56:25
【问题描述】:
有很多与CoordinatorLayout 和FAB 相关的答案,但有时您只需要在来自RecyclerView 的向下/向上滚动事件时显示/隐藏自定义视图。
【问题讨论】:
标签: android android-recyclerview kotlin android-coordinatorlayout
有很多与CoordinatorLayout 和FAB 相关的答案,但有时您只需要在来自RecyclerView 的向下/向上滚动事件时显示/隐藏自定义视图。
【问题讨论】:
标签: android android-recyclerview kotlin android-coordinatorlayout
最简单的方法是将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()
}
}
})
}
【讨论】: