自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

核心思想是

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

getView 函數一定不能耗時,有耗時任務要異步加載。

主要的方法:

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

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

  3. 耗時任務一定不要在 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();//開啟新線程,加載數據 
  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。

責任編輯:閆佳明 來源: stackvoid
相關推薦

2013-03-27 09:17:17

Android開發(fā)AndroidList

2010-07-06 09:07:09

2016-11-17 09:00:46

HBase優(yōu)化策略

2014-03-19 14:34:06

JQuery高性能

2017-03-01 20:53:56

HBase實踐

2014-02-26 11:01:28

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

2011-08-11 09:45:25

2022-05-30 07:48:11

DevOps測試策略

2015-04-23 11:10:07

2014-04-18 10:58:44

AndroidAPI實踐

2017-05-18 12:36:16

android萬能適配器列表視圖

2017-05-19 10:03:31

AndroidBaseAdapter實踐

2013-09-17 14:00:19

AndroidListView原理

2023-07-21 01:12:30

Reactfalse?變量

2011-08-18 11:05:21

jQuery

2025-04-11 03:00:55

2023-03-22 18:31:10

Android頁面優(yōu)化

2025-03-27 03:20:00

C#開發(fā)字符串

2010-04-20 09:14:33

Struts

2010-11-23 13:56:46

伊頓云計算
點贊
收藏

51CTO技術棧公眾號