Android现在的上拉刷新、下拉加载很多都是使用SwipeRefreshLayout
和RecyclerView
,监听滑动实现的,在监听滑动时通过标题的两个方法判断是否滑动到底以及是否滑动到头,关于这个网上博客很多,就不介绍了。
一般情况下确实是没有问题的,但是如果你的第一个Item/最后一个Item的View
大小超过屏幕大小,你就会发现下拉刷新/上拉加载失去作用。那这是什么问题呢?
首先,我们来看下findFirstCompletelyVisibleItemPosition()
public int findLastCompletelyVisibleItemPosition() {
final View child = findOneVisibleChild(getChildCount() - 1, -1, true, false);
return child == null ? NO_POSITION : getPosition(child);
}
我们看到它是通过findOneVisibleChild()
方法来获得View的
可以发现通过findFirstCompletelyVisibleItemPosition()