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
                }
            }
        })
    }
上一篇下一篇

猜你喜欢

热点阅读