gridView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE){
// 因为尽管我们进行的是异步加载,
// 但如果用户频繁的上下滑动,这会在一瞬间产生上百个异步任务
// 这些虽然是异步操作,但由于数量多还是会给线程池带来压力,造成线程池的拥堵,
// 并随即带来大量的UI 更新操作,造成卡顿,关键是由于上下频繁操作的场景,这些UI 操作大部分是没有意义的
// 所以考虑在列表滑动的时候,不去加载图片,列表停下来,再去加载图片
// 列表停下来再去加载图片,仍然可以获得良好的用户体验。
isViewIdle = true;
mAdapter.notifyDataSetChanged();// 闲置下来,就是不滑动
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
isViewIdle = false;
}
});