日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
AndroidListView優(yōu)化最佳實踐

這篇博客教大家如何利用 convertView 以及 viewHolder(static) 改善 ListView 卡頓情況;但是在 ListView 加載大量復(fù)雜布局和圖片的時候,即使使用了 convertView 和 viewHolder,ListView還是卡頓,本文主要討論了如何在加載復(fù)雜 list_item 同時保證 ListView 流暢性。

創(chuàng)新互聯(lián)公司始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達10年累計超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的推廣解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:玻璃隔斷等企業(yè),備受客戶贊揚。

核心思想是

監(jiān)聽滑動據(jù)加載,異步加載數(shù)據(jù)。

getView 函數(shù)一定不能耗時,有耗時任務(wù)要異步加載。

主要的方法:

  1. 先判斷當(dāng)前 ListView 的狀態(tài),只有 ListView 停止滑動才開啟新線程加載數(shù)據(jù),其他狀態(tài)均忽略。

  2. 使用 getFirstVisiblePosition 和 getLastVisiblePosition 方法來顯示 item。

  3. 耗時任務(wù)一定不要在 getView 方法中進行,***異步進行。

具體代碼如下:

 
 
 
 
  1. //判斷l(xiāng)istView狀態(tài) 
  2.  AbsListView.OnScrollListener onScrollListener = new AbsListView.OnScrollListener() {// ListView 
  3.  // 觸摸事件 
  4.   
  5.  public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
  6.  } 
  7.   
  8.  public void onScrollStateChanged(AbsListView view, int scrollState) { 
  9.  switch (scrollState) { 
  10.    case AbsListView.OnScrollListener.SCROLL_STATE_FLING:// 滑動狀態(tài) 
  11.    threadFlag = false; 
  12.    break; 
  13.    case AbsListView.OnScrollListener.SCROLL_STATE_IDLE:// 停止 
  14.    threadFlag = true; 
  15.    startThread();//開啟新線程,加載數(shù)據(jù) 
  16.    break; 
  17.    case AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:// 觸摸listView 
  18.    threadFlag = false; 
  19.    break; 
  20.    default: 
  21.    // Toast.makeText(contextt, "default", 
  22.    // Toast.LENGTH_SHORT).show(); 
  23.    break; 
  24.    } 
  25.  } 
  26.  }; 

相信做到以上三點,就能運用自如的使用 ListView。


網(wǎng)頁標(biāo)題:AndroidListView優(yōu)化最佳實踐
標(biāo)題鏈接:http://www.dlmjj.cn/article/dpjjjpg.html