美文网首页我爱编程
Android-TitleBar颜色跟随滚动变化

Android-TitleBar颜色跟随滚动变化

作者: 关玮琳linSir | 来源:发表于2018-04-13 13:04 被阅读96次

    Android-TitleBar颜色跟随滚动变化

    效果: 目前很多主流app都实现了,当我们在首页在屏幕滑动的时候TitleBar的颜色随之变动。

    其实实现的原理主要基于relativeLayout.setBackgroundColor(Color.argb(alpha.toInt(), 255, 255, 255))这样一个方法,有了这样一个方法,我们便可以监听recyclerView的滚动,然后动态设置它的背景颜色。

    代码:

    recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
                override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) {
                    super.onScrolled(recyclerView, dx, dy)
                    mDistanceY += dy
                    //toolbar的高度
                    val toolbarHeight = 56 * 3;
    
                    //当滑动的距离 <= toolbar高度的时候,改变Toolbar背景色的透明度,达到渐变的效果
                    if (mDistanceY <= toolbarHeight) {
                        val scale = mDistanceY.toFloat() / toolbarHeight
                        val alpha = scale * 255
                        relativeLayout.setBackgroundColor(Color.argb(alpha.toInt(), 255, 255, 255))
                    } else {
                        //上述虽然判断了滑动距离与toolbar高度相等的情况,但是实际测试时发现,标题栏的背景色
                        //很少能达到完全不透明的情况,所以这里又判断了滑动距离大于toolbar高度的情况,
                        //将标题栏的颜色设置为完全不透明状态
                        relativeLayout.setBackgroundResource(R.color.colorWhite)
                    }
    
                }
            })
    

    整体实现起来非常简单,当然我们可以根据实际项目的需要进行优化~

    相关文章

      网友评论

        本文标题:Android-TitleBar颜色跟随滚动变化

        本文链接:https://www.haomeiwen.com/subject/bosckftx.html