关于android-studio:20220126RecyclerView上拉和下拉

47次阅读

共计 1081 个字符,预计需要花费 3 分钟才能阅读完成。

RecyclerView 上拉和下拉

最近为了写一个繁难的多选列表性能,应用了 RecyclerView,发现如果数据太多的话会产生卡顿,所以决定应用分页,也就是大家常见的上拉加载数据,也有下拉刷新数据,咱们这里应用滚动事件 addOnScrollListener 来实现这个性能。

上拉加载

  1. RecyclerView 上增加监听事件

    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
     @Override
     public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {super.onScrollStateChanged(recyclerView, newState);
     }
    });
  2. 当咱们无奈上拉当前,以及松开手指当前,触发数据加载

    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
     @Override
     public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {super.onScrollStateChanged(recyclerView, newState);
     // canScrollVertically 参数是 1 是无奈上拉
         if (!recyclerView.canScrollVertically(1) && newState == RecyclerView.SCROLL_STATE_IDLE) {// 实现数据加载}
     }
    });

下拉刷新

  1. 原理跟上拉一样,只是判断无奈下拉后,刷新数据

    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
     @Override
     public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {super.onScrollStateChanged(recyclerView, newState);
     // canScrollVertically 参数是 - 1 是无奈上拉
         if (!recyclerView.canScrollVertically(-1) && newState == RecyclerView.SCROLL_STATE_IDLE) {// 实现数据加载}
     }
    });

正文完
 0