RecyclerView——滑动监听,判断是否滑动到了最后一个item

来源:互联网 发布:跟兄弟连学php 电子书 编辑:程序博客网 时间:2024/06/07 19:16

项目中的需求,RecyclerView横向滑动列表,要有加载更多的功能,给RecyclerView设置一个滑动监听,在onScrolled方法中判断一下滑动方向,然后在onScrollStateChanged方法中判断一下是否滑动到最后一个item即可,代码中已经写了详细的注释。

recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {          //用来标记是否正在向最后一个滑动          boolean isSlidingToLast = false;          @Override          public void onScrollStateChanged(RecyclerView recyclerView, int newState) {              super.onScrollStateChanged(recyclerView, newState);              LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();              // 当不滚动时              if (newState == RecyclerView.SCROLL_STATE_IDLE) {                  //获取最后一个完全显示的ItemPosition                  int lastVisibleItem = manager.findLastCompletelyVisibleItemPosition();                  int totalItemCount = manager.getItemCount();                  // 判断是否滚动到底部,并且是向右滚动                  if (lastVisibleItem == (totalItemCount - 1) && isSlidingToLast) {                      //加载更多功能的代码                  }              }          }          @Override          public void onScrolled(RecyclerView recyclerView, int dx, int dy) {              super.onScrolled(recyclerView, dx, dy);              //dx用来判断横向滑动方向,dy用来判断纵向滑动方向              if (dx > 0) {                  //大于0表示正在向右滚动                  isSlidingToLast = true;              } else {                  //小于等于0表示停止或向左滚动                  isSlidingToLast = false;              }          }      }); 
阅读全文
0 0
原创粉丝点击