listView懶載入解決快速拖動卡屏問題

jia635發表於2014-06-27
快速拖動  上下拖動很卡的原因 listView中有大量的圖片,每張圖片在生存時候會花200毫秒,
 
解決:利用listView的懶載入   :當拖動時候不去載入ListView中的條目,當使用者停止的時候才
真正去載入這個條目
判斷ListView的狀態,如果ListView是處於滾動狀態,返回一個假的View物件,gieView()執行很快
只有當listView處於靜止狀態的時候,才去真正去更新裡面顯示的內容
5.listview的懶載入
   判斷listview的狀態,如果listview是處於滾動狀態.返回一個假的view物件.
   只有當listview處於靜止狀態的時候 ,才去真正的更新裡面所顯示的內容.
 
    1.在activity建立的時候,獲取到所有的縮圖...
 
   2.在adapter的getview的方法裡面判斷 當前listview是否處於滾動狀態.
   滾動狀態可以通過 listview的setonscroollistener的方式 處理
  onScrollStateChanged(AbsListView view, int scrollState) {
        switch (scrollState) {
        case OnScrollListener.SCROLL_STATE_IDLE:
            滾動= false;
            break;
        case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
            滾動= true;     
            break;
        case OnScrollListener.SCROLL_STATE_FLING:
            滾動= true;
            break;
 
如果是滾動狀態 就只返回,縮圖.
並且把真實圖片的id儲存起來.並且可以儲存當前imageview的引用.
 
3.當滾動狀態變成靜止的時候 再去真正的載入每個真實的圖片.
在case OnScrollListener.SCROLL_STATE_IDLE:
//獲取第一個listview可見的條目的位置
  int first = listview.getFirstVisiblePosition();
// 獲取listview裡面顯示的條目的個數.
  int count = view.getChildCount();
通過for迴圈 更新所有的圖片
for (int i=0; i<count; i++) {
         拿到圖片的id,和imageview,更新裡面的內容.    
 
            }
 
這種方法,可以解決掉拖動卡頓的現象.

相關文章