1. 程式人生 > >Glide結合Recyclerview(Listview)實現列表滑動的時候圖片不載入,滑動停止的時候載入

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; } }

–>路要一步一步走,記住自己走過的路,不再犯同樣的錯誤,才是真正的成長!歡迎指點、交流。<–