問題描述:
Listview的item中有圖片,在刷新時及時新數據和舊數據並無兩樣,imageview還是會閃動。
先來分析圖片閃動可能的原因:
1)adapter = new WillListAdapter(MyApplication.getInstance(), wills);
不管此前adapter是否已綁定數據,或數據前后有沒有變化,這條語句執行的時候,adapter都會使listview重繪所有item,這個閃動不可避免
2)adapter.notifyDataSetChanged();
如果該 item對應的數據發生變化,會重繪該item,出現閃動
3)imageview的異步加載可能有問題,改用volley不會出現
解決:
這里只解決刷新后數據沒變但發生閃動的情況
刷新的 錯誤代碼
adapter = new WillListAdapter(MyApplication.getInstance(), wills);
改為
if (!wills.isEmpty()) { wills.removeAll(wills); } wills.addAll(JsonTools.getObjects(httpResult.getResult().toString(), Will.class)); adapter.notifyDataSetChanged();
Done