作者fake01 (假面超人)
看板AndroidDev
標題[問題] GridView BaseAdapter 異步讀圖順序錯誤
時間Fri Jun 13 18:55:07 2014
大家好
今天的問題是當我使用GridView來顯示圖片,當相簿來使用的範例
在getView中,參考了網路上的說法,
public View getView(final int position, View convertView, ViewGroup parent)
可以重複使用 convertView,來達到滑動時的順暢效果
if(convertView == null)
{
holder = new Holder();
.....
convertView.setTag(hodler);
}
else
{
holder = (Holder)converView.getTag();
}
接著我使用AsyncTask來載SDcard裡面的圖檔,此時就發生了問題
GirdView裡面的小圖示,會有發生順序錯亂的問題。
我參考了網路上的說法,將holder.imageview.setTag(position);
然後再AsyncTask裡面執行時,使用holder.imageview.getTag();
讀取圖檔id,一切看起來都很正常,但還是會有順序錯亂的問題。
請問這該如何解決??
謝謝大家
Ps1.如果不用AsyncTask,就不會發生順序錯亂,但滑動view時,就會
很卡。
Ps2.目前還有一個狀況,當採用AsyncTask讀圖,第一個page,是不會
產生圖片。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.138.152.10
※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1402656913.A.70E.html
推 showsky:帶個 position 和 ImageView 進去 Async 且 ImageView 06/13 22:57
→ showsky:使用 setTag(position) 處理完 Async 在顯示回 ImageVeiw 06/13 22:58
→ showsky:時候進行 position 和 getTag 比較確定不是 cache View 06/13 22:59
推 qweqweqweqwe:最近兩天我也卡在一模一樣的問題。。 06/13 23:31
推 givemepass:順序錯亂一定是你該row的元件沒有設定初始值 06/15 00:09
→ lovelycateye:你有確保你一個 ImageView 只會給一個 AsyncTask 06/16 14:05
→ lovelycateye:去 Reference 嗎? 06/16 14:05