监听加载代码实现

我们可以通过onScrollStateChanged中的第1个参数RecycleView对象,拿到其布局管理类LayoutManager。我们看一下这个管理类的源码提供的方法,如下:

//最后一个可见item
public int findLastCompletelyVisibleItemPosition() {
final View child = findOneVisibleChild(getChildCount() - 1, -1, true, false);
return child == null ? NO_POSITION : getPosition(child);
}

//第一个完全可见的item
public int findFirstCompletelyVisibleItemPosition() {
final View child = findOneVisibleChild(0, getChildCount(), true, false);
return child == null ? NO_POSITION : getPosition(child);
}

public int getItemCount() {//拿到总数
final Adapter a = mRecyclerView != null ? mRecyclerView.getAdapter() : null;
return a != null ? a.getItemCount(http://www.amjmh.com) : 0;
}

所以,我们可以通过LayoutManager拿到列表item的总数及列表前后完全显示的item,在滑动列表时会不断触发监听回调的方法,我们只需判断列表前后完全显示的item是否对应总数中item,如果判断通过就调用下拉、上拉的方法。

上拉、下拉的方法我们可以定义一个接口 UpPullOnScrollListener,在我们Activity中实现即可。

public interface UpPullOnScrollListener {
/**
* 加载更多数据的方法
*/
public void onLoadMoreData() ;

/**
* 上拉刷新数据的方法
*/
public void onRefreshData() ;
}

猜你喜欢

转载自www.cnblogs.com/liyanyan665/p/11299173.html