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

首先: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;  

        }  

    }  

–>路要一步一步走,记住自己走过的路,不再犯同样的错误,才是真正的成长!欢迎指点、交流。<–

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值