[問題] GridView BaseAdapter 異步讀圖順序錯誤

看板AndroidDev作者 (假面超人)時間11年前 (2014/06/13 18:55), 編輯推噓3(304)
留言7則, 4人參與, 最新討論串1/3 (看更多)
大家好 今天的問題是當我使用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

06/13 22:57, , 1F
帶個 position 和 ImageView 進去 Async 且 ImageView
06/13 22:57, 1F

06/13 22:58, , 2F
使用 setTag(position) 處理完 Async 在顯示回 ImageVeiw
06/13 22:58, 2F

06/13 22:59, , 3F
時候進行 position 和 getTag 比較確定不是 cache View
06/13 22:59, 3F

06/13 23:31, , 4F
最近兩天我也卡在一模一樣的問題。。
06/13 23:31, 4F

06/15 00:09, , 5F
順序錯亂一定是你該row的元件沒有設定初始值
06/15 00:09, 5F

06/16 14:05, , 6F
你有確保你一個 ImageView 只會給一個 AsyncTask
06/16 14:05, 6F

06/16 14:05, , 7F
去 Reference 嗎?
06/16 14:05, 7F
文章代碼(AID): #1JcjYHSE (AndroidDev)
文章代碼(AID): #1JcjYHSE (AndroidDev)