Android RecyclerView 滚动监听
2021-08-27 本文已影响0人
_发强
前面整理了 ScrollView 的滑动监听,这里再记录一个 RecyclerView 的滑动事件。
纵向滑动
private var scrollY = 0
private val scrollDistance by lazy {
dp2px(40f)
}
private fun addOnScrollListener() {
binding.lbRv.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
scrollY += dy
if (scrollY <= 0) {
binding.topLayout.setBackgroundResource(getColorById(android.R.color.transparent))
} else if (scrollY in 1..scrollDistance) {
binding.topLayout.setBackgroundColor(getColorById(R.color.c_fc4e52))
val rate = (scrollY.toFloat() / scrollDistance.toFloat())
binding.topLayout.background.alpha = (rate * 255).toInt()
} else {
binding.topLayout.setBackgroundColor(getColorById(R.color.c_fc4e52))
binding.topLayout.background.alpha = 255
}
}
})
}