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

作者: fake01 (假面超人)   2014-06-13 18:55:07
大家好
今天的問題是當我使用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,是不會
產生圖片。
作者: showsky (Ting Cheng)   2014-06-13 22:57:00
帶個 position 和 ImageView 進去 Async 且 ImageView使用 setTag(position) 處理完 Async 在顯示回 ImageVeiw時候進行 position 和 getTag 比較確定不是 cache View
作者: qweqweqweqwe (4qwe)   2014-06-13 23:31:00
最近兩天我也卡在一模一樣的問題。。
作者: givemepass (λ)   2014-06-15 00:09:00
順序錯亂一定是你該row的元件沒有設定初始值
作者: lovelycateye (我還想要更多力量)   2014-06-16 14:05:00
你有確保你一個 ImageView 只會給一個 AsyncTask去 Reference 嗎?

Links booklink

Contact Us: admin [ a t ] ucptt.com