使用 RecyclerView 滚动关联标题颜色的做法

使用 RecyclerView 滚动关联标题颜色的做法
滚动上去就从 透明->白色

 private val mOnScrollListener = object : RecyclerView.OnScrollListener() {
        private var tempY = 0f
        private val duration = DisplayUtils.dp2px(200f)
        private val evaluator = ArgbEvaluator()
        private val START_COLOR = 0
        private val END_COLOR = ResourcesUtils.getColor(R.color.white)

        override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
            super.onScrolled(recyclerView, dx, dy)
            tempY += dy;

            // 滚动的总距离相对 0 - duration 之间有一个百分比,头部的透明度也是从初始值变动到不透明,通过距离的百分比,得到透明度对应的值
            // 如果小于0那么透明度为初始值,如果大于 duration 为不透明状态
            val bgColor: Int = when {
                tempY < 0 -> {
                    START_COLOR
                }
                tempY > duration -> {
                    END_COLOR
                }
                else -> {
                    evaluator.evaluate((tempY / duration), START_COLOR, END_COLOR).toString().toInt()
                }
            }
            viewStatus?.setBackgroundColor(bgColor)
            titleBar?.setBackgroundColor(bgColor)
        }
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值