我在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
答案 0 :(得分:2)
是的,预计会发生。根据文档onScroll
:
滚动列表或网格时要调用的回调方法。滚动完成后将调用此方法
因此只有在滚动完成后才会调用它,因此当您滚动缓慢时,所有项目都会被调用,但是当您快速滚动时,只会调用那些在滚动完成后当前可见的项目。