利用OnScrollListener中的onScrollStateChanged方法中的scrollState
public void onScrollStateChanged(AbsListView view, int scrollState);
该方法有两个入参,第二个参数scrollState有三种状态:
public static int SCROLL_STATE_IDLE = 0; //结束滚动
public static int SCROLL_STATE_TOUCH_SCROLL = 1; //触摸滚动
public static int SCROLL_STATE_FLING = 2; //手指离开屏幕后的滚动状态
此时我们可将焦点定位到 SCROLL_STATE_IDLE,将滚动到底部的判断和处理放在结束滚动之后。
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
case SCROLL_STATE_IDLE:
boolean toBottom = view.getLastVisiblePosition() == view.getCount() - 1;
if (toBottom && !isLoading && !isFinish) {
//...
}
break;
}
这样就能操控onScroll的触发了。