OnScroll没有在android中返回预期的输出

时间:2014-06-12 06:12:47

标签: android listview

我在listView中添加一个OnScrollListener,其中包含26个项目。

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
        if(mCurrentPosition == firstVisibleItem){
        return;
    }
    System.out.println(firstVisibleItem);
}

当我快速(更快)滚动列表时,onScroll不会调用每个项目。但是当我正常滚动时它工作正常。

输出异常:

System.out(30562): 0
System.out(30562): 1
System.out(30562): 2
System.out(30562): 5
System.out(30562): 8
System.out(30562): 11
System.out(30562): 14
System.out(30562): 18
System.out(30562): 20
System.out(30562): 23
System.out(30562): 26

1 个答案:

答案 0 :(得分:2)

是的,预计会发生。根据文档onScroll

滚动列表或网格时要调用的回调方法。滚动完成后将调用此方法

因此只有在滚动完成后才会调用它,因此当您滚动缓慢时,所有项目都会被调用,但是当您快速滚动时,只会调用那些在滚动完成后当前可见的项目。