仿淘宝滑动RecycleView改变ToolBar透明度

本文介绍如何实现在滑动RecycleView时,动态改变ToolBar的透明度,模仿淘宝应用的效果。通过监听RecycleView中item的位置变化,调整ToolBar的透明度,达到平滑过渡的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现淘宝滑动RecycleView改变ToolBar透明度

在这里插入图片描述

通过监听item距离顶部的位置,进行相应的透明度改变。
代码如下:

  mRlv.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {

            private int mDistanceY;

            @Override
            public void onScrollChanged() {
                //控制tab透明度   //mManager    mManager = new LinearLayoutManager(getActivity());
                if (mManager.findFirstVisibleItemPosition() == 0) {
                    mDistanceY = -mRlv.getChildAt(0).getTop();
                    //完全变色的高度
                    int changeHeight = 500;

                    //当滑动的距离 <= toolbar高度的时候,改变Toolbar背景色的透明度,达到渐变的效果
                    if (mDistanceY <= changeHeight) {
                        float alpha = (float) mDistanceY / changeHeight;
                        mMtoolbar.setAlpha(alpha);
                        if (alpha < 0.01) {
                            mMtoolbar.setEnabled(false);
                        } else {
                            mMtoolbar.setEnabled(true);
                        }
                    } else {
                        //将标题栏的颜色设置为完全不透明状态  //mMtoolbar表示Toolbar对象
                        mMtoolbar.setAlpha(1);
                        mMtoolbar.setEnabled(true);
                    }
                } else {
                    if (mMtoolbar.getAlpha() != 1f) {
                        //将标题栏的颜色设置为完全不透明状态
                        mMtoolbar.setAlpha(1);
                        mMtoolbar.setEnabled(true);
                    }
                }
            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值