RecycleView瀑布流header向上滑动时tab固定在顶部实现方法

在Android中,当使用RecyclerView实现瀑布流布局时,通过监听滚动事件,可以在用户上滑时将头部Tab固定在顶部。关键在于计算滚动偏移量,并根据偏移量判断是否显示或隐藏Tab。具体实现涉及computeVerticalScrollOffset()方法,以及对头部View位置的检查。
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                //这段代码逻辑很复杂~~~~~~~~~~
                try {
                    alldy=recyclerView.computeVerticalScrollOffset();//alldy,int常量
                    if(alldy>=headerHeight && headerHeight!=0){//headerHeight,header的view的高度
//                    LogUtil.d(LogUtil.BABY_SHOW,"显示:alldy="+alldy+",headerHeight="+headerHeight);
                        if(w_act_tab.getVisibility()==View.GONE ){//tab的显示或隐藏
                            w_act_tab.setVisibility(View.VISIBLE);
                        }
                    }else{
//                    LogUtil.d(LogUtil.BABY_SHOW,"隐藏:alldy="+alldy+",headerHeight="+headerHeight);
                        if(w_act_tab.getVisibility()==View.VISIBLE){
                            head.getLocationOnScreen(a);//header向上滑动一段之后会回收,这时alldy会突然减少
                            if(!(a[0]==0 && a[1]==0)){
                                w_act_tab.setVisibility(View.GONE);
                            }else{
                                w_act_tab.setVisibility(View.VISIBLE);
                            }
                        }
                    }
                }catch (Throwable e){
                    e.printStackTrace();
                }
            }

            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
               
            }
        });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值