判断RecycleView是否滑动到底部

来源:互联网 发布:快典网藏头诗软件 编辑:程序博客网 时间:2024/05/18 22:11


最近做项目要判断RecycleView是否滑动到底部,在网上找了很多方法,但试用之后都会有点小bug。

后来找到一个方法,暂时没有发现bug。和我想要的一样。


其实ReycleViewde判断滑动到底部的方法很多,这里只说一种


就是根据:RecycleView右边自带的滑动条判断的



   //1监听recyclView是否滑动到底部
      recycleView.setOnScrollListener(new RecyclerView.OnScrollListener() {

          //判断是不是往上拖动
          public boolean isLastReflash;


          @Override
          public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
              super.onScrollStateChanged(recyclerView, newState);
            
              /*
              * 滑动停止之后检测是否滑动到底部
              **/
              if(newState == RecyclerView.SCROLL_STATE_IDLE &&isLastReflash){

                    
                   if(recycleView.computeVerticalScrollExtent()+recyclerView.computeVerticalScrollOffset()>=recyclerView.computeVerticalScrollRange()){
                      // Toast.makeText(getContext(),"滑动到底部",Toast.LENGTH_SHORT).show();
                    
                          //滑动到底部的时候一般要做加载更多的数据的操作...

                       /*
                       * 提示适配器
                       * */
                       recycleViewAdapter.notifyDataSetChanged();
                   }
              }
          }



        //根据dy,dx可以判断是往哪个方向滑动
          @Override
          public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
              super.onScrolled(recyclerView, dx, dy);
              if(dy>0){
                  isLastReflash = true;
              }else{
                  isLastReflash = false;
              }
          }
      });



可能你好像做一个返回顶部的逻辑操作,也是可以获取RecycleView的布局管理器,设置要滚到的地方即可

 LinearLayoutManager  linearLayoutManager=  (LinearLayoutManager)recycleView.getLayoutManager();
                linearLayoutManager.scrollToPositionWithOffset(0,0);



最近写的都是小知识点,毕竟自己菜,如果发现有错误,希望指出。。

原创粉丝点击