Android ScrollView 滚动监听,标题栏渐变

本文内容也如 标题所描述,就是监听ScrollView 的滚动,来进行设置标题栏的渐变效果,

直接上代码:

    private fun addOnScrollListener() {
        binding.scrollView.viewTreeObserver.addOnScrollChangedListener {
            val scrollY = binding.scrollView.scrollY
            LogUtil.i("scrollY: $scrollY")
            if (scrollY <= 0) {
                binding.topLayout.setBackgroundResource(getColorById(android.R.color.transparent))
            } else if (scrollY > 0 && scrollY <= dp2px(130f)) {  // 130 是需要滚动的高度 单位 dp,
                binding.topLayout.setBackgroundColor(getColorById(R.color.c_fc4e52))
                val rate = (scrollY.toFloat() / dp2px(130f).toFloat())
                binding.topLayout.background.alpha = (rate * 255).toInt()    // 这里的 透明度取值是 0-255.

            } else {
                binding.topLayout.setBackgroundColor(getColorById(R.color.c_fc4e52))
                binding.topLayout.background.alpha = 255
            }
        }
    }

注意: 设置监听的对象是 ScrollView.viewTreeObserver.

参考链接

你可能感兴趣的:(Android ScrollView 滚动监听,标题栏渐变)