偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Android ListView 優(yōu)化最佳實踐

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

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

核心思想是

監(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。

責(zé)任編輯:閆佳明 來源: stackvoid
相關(guān)推薦

2013-03-27 09:17:17

Android開發(fā)AndroidList

2010-07-06 09:07:09

2014-03-19 14:34:06

JQuery高性能

2014-02-26 11:01:28

日志優(yōu)化系統(tǒng)日志

2017-03-01 20:53:56

HBase實踐

2016-11-17 09:00:46

HBase優(yōu)化策略

2011-08-11 09:45:25

2015-04-23 11:10:07

2022-05-30 07:48:11

DevOps測試策略

2011-08-18 11:05:21

jQuery

2023-07-21 01:12:30

Reactfalse?變量

2017-05-19 10:03:31

AndroidBaseAdapter實踐

2017-05-18 12:36:16

android萬能適配器列表視圖

2014-04-18 10:58:44

AndroidAPI實踐

2025-04-11 03:00:55

2012-08-09 09:10:56

代碼審查代碼

2014-06-09 15:50:08

2024-08-21 08:02:47

2014-08-19 10:06:53

IAP

2011-12-21 13:35:39

JavaJFreeChart
點贊
收藏

51CTO技術(shù)棧公眾號