Android錯誤之ListView載入錯位_ListView圖片錯位

來源:互聯網
上載者:User

標籤:android   listview   

又遇到ListView載入item時,多個item中的圖片會錯位的情況

現象如,同一個人的頭像顯示的亂七八糟



找了一張圖,很好地說明了問題的原因

問題原因就在於convertView的重用,當重用 convertView 時,最初一屏顯示 7 條記錄, getView 被調用 7 次,建立了 7 個 convertView,

當 Item1 划出螢幕, Item8 進入螢幕時,這時沒有為 Item8 建立新的 view 執行個體, Item8 複用的是Item1時候建立的view,

Item8 時刷上了 Item8 的資料,但是剛開始代碼是這樣寫的,本意是頭像為空白的時候不去載入,可以節省資源

String avatarUrl = user.getAvatar();if (avatarUrl!=null&&!avatarUrl.equals("")) {ImageLoader.getInstance().displayImage(avatarUrl, viewHolder.userLogo,ActivityUtil.getOptions(R.drawable.user_icon_default_main));}
如果恰好item8的頭像是Null 字元串,就沒有賦值,導致item8顯示的是item1的頭像,以此類推,只要遇到空頭像,就會顯示它所重用的convertView原來顯示的圖片,也就造成了圖片錯位。

所以後來改成了下面這樣

// 頭像String avatarUrl = null;if (user.getAvatar() != null) {avatarUrl = user.getAvatar();}ImageLoader.getInstance().displayImage(avatarUrl, viewHolder.userLogo,ActivityUtil.getOptions(R.drawable.user_icon_default_main));
不管頭像為不為空白,都去載入,把複用的convertView原來內建的圖片替換掉就可以了。



jason0539

部落格:http://blog.csdn.net/jason0539(轉載請說明出處)

推薦掃碼關注公眾號,看點不一樣的東西




Android錯誤之ListView載入錯位_ListView圖片錯位

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.