首先:glide 的方法,发现有两个方法:
Glide.with(context).resumeRequests();
Glide.with(context).pauseRequests();
根据方法名称不难理解:
其中第一个是恢复图片的请求加载,第二个是暂停图片的请求加载。
我们先看RecyclerView的监听:
我们来看看 OnScrollListener 里面的两个方法:
onScrolled(RecyclerView recyclerView, int dx, int dy)
)
onScrollStateChanged(RecyclerView recyclerView, int newState
其中我们需要关注第二个方法。第二个参数 newState 就是滑动的状态,有三个:
SCROLL_STATE_IDLE 停止滑动。(恢复)
SCROLL_STATE_DRAGGING 当屏幕滚动且用户使用的触碰或手指还在屏幕上(停止)
SCROLL_STATE_SETTLING 由于用户的操作,屏幕产生惯性滑动。(停止)
我们再来看listview的:
SCROLL_STATE_IDLE 滑动停止
SCROLL_STATE_FLING 正在滚动
SCROLL_STATE_TOUCH_SCROLL 网上的资料给的解释是手接触 Listview 会触动一次
好了,这些清楚了,只需要在OnScrollStateChanged 中判断即可:
@Override
public void onScrollStateChanged(AbsListView view, int newState) {
switch (newState){
case SCROLL_STATE_IDLE:
//滑动停止
try {
if(getContext() != null) Glide.with(getContext()).resumeRequests();
}
catch (Exception e) {
e.printStackTrace();
}
break;
case SCROLL_STATE_FLING:
//正在滚动
try {
if(getContext() != null) Glide.with(getContext()).pauseRequests();
}
catch (Exception e) {
e.printStackTrace();
}
break;
}
}
–>路要一步一步走,记住自己走过的路,不再犯同样的错误,才是真正的成长!欢迎指点、交流。<–