2016-02-23 25 views
0

我在我的自定義適配器類中使用異步調用來加載Listview中的圖像。但是,圖像不會顯示,直到我至少略微向上/向下滾動。請讓我知道可能是什麼原因。謝謝你的幫助。Listview不加載圖像,直到我滾動屏幕

private class LoadImage extends AsyncTask<Void, Void, Void> 
{ 
    private String fileName = null; 
    private ImageView imgViewToLoad = null; 

    LoadImage(String fileName, ImageView imgViewToLoad) 
    { 
     this.fileName = fileName; 
     this.imgViewToLoad = imgViewToLoad; 
    } 

@Override 
protected Void doInBackground(Void... args) 
{ 
    return null; 
} 

//This is executed on main UI thread 
@Override 
protected void onPostExecute(Void result) { 

    super.onPostExecute(result); 
    Utils.mImageFetcher.loadImage(fileName, imgViewToLoad); 
} 
} 


This is in my getView() 
---------------------- 

ViewHolderIncomingImg holderInImg = null; 
if (null != convertView && 
    (convertView.getTag() instanceof ViewHolderIncomingImg && !isFirstMsg)) 
{ 
    holderInImg = (ViewHolderIncomingImg) convertView.getTag(); 
    if (!multiSelectionMode) 
    { 
     if (!mSelectedItemsIds.get(position) && convertView.isActivated()) 
      convertView.setActivated(false); 
    } 
} 
else 
{ 
    convertView = mInflater.inflate(R.layout.conv_list_item_incoming_img, parent, false); 
    holderInImg = new ViewHolderIncomingImg(); 

.............. 

new LoadImage(convRowItems.get(position).getMessage(), holderInImg.image).execute(); 
+1

該reasen是最有可能查看回收。請張貼您的代碼,其他所有內容都會被猜出。 –

+0

請顯示適配器的代碼。 –

+0

確保在異步調用完成後調用適配器上的NotifyDataSetChanged方法 –

回答

0

由於Listview使用了回收其視圖的概念。當異步呼叫完成時,圖像不顯示。

所以去listview懶加載方法它會幫助你。

+0

感謝您的回覆,您可以請分享一些鏈接到一些顯示延遲加載方法的代碼片段嗎? –

相關問題