标签:getchild 列表 ref count inter 一个 == onscroll recycle
我们可以通过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() ;
}
标签:getchild 列表 ref count inter 一个 == onscroll recycle
原文地址:https://www.cnblogs.com/liyanyan665/p/11299173.html