android开发中经常有滑动页面时使Title变色的需求,今天就记录一下这个功能的实现方法
在Actvity中设置ScrollView的滑动监听,可惜SDK没有暴露ScrollView的onScrollChanged方法,我们可以重写ScrollView并用接口监听onScrollChanged方法,也可以直接使用V4包下的NestedScrollView代替ScrollView。NestedScrollView有直接设置滑动监听的方法setOnScrollChangeListener。下面上代码
scrollView.setOnScrollChangeListener { v: NestedScrollView?, scrollX: Int, scrollY: Int, oldScrollX: Int, oldScrollY: Int ->
var height = toolbar.height
//滚动范围限制在0到toolbar高度之间
if (scrollY in 0..height) {
//计算滚动的比例
var scale = scrollY.toFloat()/height.toFloat()
//scale最大值为1,即为全不透明
var alpha = scale*255
toolbar.setBackgroundColor(Color.argb((int) alpha, 227, 29, 26))//色值自取
} else {
//直接不设置透明度
toolbar.setBackgroundColor(255, 227, 29, 26)
}
}
网友评论