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

来源:互联网 发布:远程网络教育四川大学 编辑:程序博客网 时间:2024/06/12 21:50
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);                           }        });

阅读全文
0 0
原创粉丝点击