Toolbar(或自定义布局)随滑动控件(ListView,ScrollView,RecylerView)改变透明度

本文介绍了如何实现ScrollView、ListView和RecyclerView在滑动时改变Toolbar的透明度。通过分析源码,获取滑动高度,利用内部类或重写方法设置透明度。对于ScrollView,可以通过滑动高度直接调整;ListView由于无法直接获取scrollY,需通过滑动的item数量和高度计算;RecyclerView则需要借助LayoutManager找到第一个可见项的位置。

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

1.效果如下:
这里写图片描述

2.分别实现ScrollView和ListView以及RecylerView对应时候的透明度

1.首先我们来分析ScrollView如何来实现思路:

   其实我们知道是改变Toolbar(自定义的布局)透明度,而且是更具滑动控件滑动的距离,所以问题
   来了透明度是0-1,我们猜想可以获取滑动的高度,如何将滑动高度和透明度联系在一起呢?我们
   可以设置根据屏幕高度和滑动的高度直接进行计算例如:
   这里我我将屏幕的三分之一作为基数:只要屏幕滑动大于等于屏幕的三分之一那么就透明了。
   if(scrollY<(screenHeight/3f)){ aphal=scrollY/(screenHeight/3f)}: 
   0<aphal<1

2.我们如何获取滑动的高度呢?
我们去看看ScrollView的源码发现:

protected void onScrollChanged(int l, int t, int oldl, int oldt)
然后在ScrollView重绘时候会不断调用赋值scrollY的。所以我们可以通过scrollView.getScrollY();
来获取高度

3.上代码:
1。你可以重写ScrollView也可以通过实例化后的ScrollView来通过内部类进行设置:
例如:

 mScr.setOnScrollChangeListener(new View.OnScrollChangeListener() {
            @Override
            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
                //如何选择那种方式,你看着那个顺眼就来
            int scrollY=m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值