假如你滑动特别快,glide加载优化就显得非常重要呢,具体优化方法如下所示
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
LoggerUtils.e("initRecyclerView"+ "恢复Glide加载图片");
Glide.with(ImageBrowseActivity.this).resumeRequests();
}else {
LoggerUtils.e("initRecyclerView"+"禁止Glide加载图片");
Glide.with(ImageBrowseActivity.this).pauseRequests();
}
}
});
在 RecyclerView 中,有三种滚动状态:
SCROLL_STATE_IDLE
:空闲状态,即 RecyclerView 没有正在滚动。SCROLL_STATE_DRAGGING
:拖动状态,即用户正在手动滚动 RecyclerView。SCROLL_STATE_SETTLING
:自动滚动状态,即手指离开屏幕后,RecyclerView 正在以惯性滚动。
你可以通过以下代码来检查 RecyclerView 的当前滚动状态:
int scrollState = recyclerView.getScrollState();
if (scrollState == RecyclerView.SCROLL_STATE_IDLE) {
// RecyclerView 当前没有正在滚动
} else if (scrollState == RecyclerView.SCROLL_STATE_DRAGGING) {
// RecyclerView 当前正在被拖动滚动
} else if (scrollState == RecyclerView.SCROLL_STATE_SETTLING) {
// RecyclerView 当前正在自动滚动(惯性滚动)
}