前言:本文介绍无需第三方库,只是通过RecyclerView即可简单实现下拉刷新和上拉加载更多。
方案:
1、RecyclerView注册滑动监听addOnScrollListener(RecyclerView.OnScrollListener listener)
2、判断是否还能向上滑动,不能则进行加载下一页数据。canScrollVertically(int direction)
实现:
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (!recyclerView.canScrollVertically(1)) {
if (mPageNo < mPageCount) { //总页数大于当前页数时才可请求下一页数据
mPageNo += 1;
requestData();
}
}
}
});
注:
1、canScrollVertically(int direction),direction为负值则判断下拉,正值则判断上滑
2、RecyclerView第一个item为空布局(gone或高度为0)则下拉canScrollVertically(-1)始终为true,同理最后一个item为空上拉也始终为true。可以通过给item根布局设置android:minHeight="1px"即可