您的位置:首页 > 其它

Glide结合Recyclerview(Listview)实现列表滑动的时候图片不加载,滑动停止的时候加载

2017-07-03 15:50 603 查看
首先: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;

}

}


–>路要一步一步走,记住自己走过的路,不再犯同样的错误,才是真正的成长!欢迎指点、交流。<–
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  listview 图片
相关文章推荐