Android RecyclerView实现下拉刷新和上拉加载

2019-12-10 18:00:17于海丽

其需要实现接口SwipeRefreshTrigger和SwipeTrigger。

而底部需要实现SwipeTrigger和SwipeLoadMoreTrigger。

布局文件中如下使用

<RelativeLayout xmlns:android="http://www.easck.com/apk/res/android"
  xmlns:tools="http://www.easck.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="#ECEDF0"
  >

  <com.aspsine.swipetoloadlayout.SwipeToLoadLayout
    android:id="@+id/swipeToLoadLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.mahao.alex.systemwidgetdemo.recycleView.swipetoloadlayout.RefreshHeaderView
      android:id="@+id/swipe_refresh_header"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" />

    <android.support.v7.widget.RecyclerView
      android:id="@+id/swipe_target"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:scrollbars="vertical" />

    <com.mahao.alex.systemwidgetdemo.recycleView.swipetoloadlayout.LoaderMoreView
      android:id="@+id/swipe_load_more_footer"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:gravity="center"
      android:padding="20dp" />
  </com.aspsine.swipetoloadlayout.SwipeToLoadLayout>


</RelativeLayout>

查找控件,设置监听

        swipeToLoadLayout.setOnRefreshListener(this);
        swipeToLoadLayout.setOnLoadMoreListener(this);

在我们之前的代码中,加入了log信息,我们可以看一下log信息。…代表多次onMove()方法多次调用。

05-10 10:30:34.396 23814-23814/com.mahao.alex.systemwidgetdemo I/info: onPrepare
05-10 10:30:34.536 23814-23814/com.mahao.alex.systemwidgetdemo I/info: onMove
..........................................................................
05-10 10:30:34.886 23814-23814/com.mahao.alex.systemwidgetdemo I/info: onMove
05-10 10:30:34.896 23814-23814/com.mahao.alex.systemwidgetdemo I/info: onRelease