本文内容也如 标题所描述,就是监听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
}
}
}