如何动态控制AppBarLayout的title透明度

动态控制AppBarLayout的title透明度

我有个想法,根据上或者下滑动的距离来动态控制title的透明度。

但是之前一次执着于使用nestedscrollview的滚动监听事件,而无法达到最终效果。

如何动态控制AppBarLayout的title透明度_第1张图片




 mBinding.nestedScrollView.setOnScrollChangeListener { view: NestedScrollView?, scrollX: Int, scrollY: Int, oldScrollX: Int, oldScrollY: Int ->
            val minMovePx = DisplayUtil.convertDp2Px(this, 45f)
            if (scrollY > oldScrollY){
//                mBinding.toolbarTitle.alpha = scrollY / minMovePx
                mBinding.toolbarTitle.alpha = 1f
            } else {
                mBinding.toolbarTitle.alpha = 0f
            }
        }


后来灵感来了,终于想到了!!!-------通过appbarlayout的折叠状态监听事件就可以实现了,啊啊啊啊啊啊啊啊啊!!!要疯。




 mBinding.appbarLayout.addOnOffsetChangedListener(AppBarLayout.OnOffsetChangedListener { p0, p1 ->
            when {
                p1 == 0 -> {
                    Log.d("scroll", "向下滚动了")
                    mBinding.toolbarTitle.alpha = 0f
                }
                Math.abs(p1) >= p0.totalScrollRange -> {
                    Log.d("scroll", "向上滚动了")
                    mBinding.toolbarTitle.alpha = 1f
                }
                else -> {
                    Log.d("scroll", "中间状态")
                    mBinding.toolbarTitle.alpha = 0f
                }
            }
        })




小的在此献丑了。

你可能感兴趣的:(AppBarLayout)