我正在使用ArrayAdapter在具有無限滾動功能的ListView中設置數據。在ListView的行中有一個ImageView和兩個TextViews。起初,我使用10個項目加載ListView,向下滾動時,我調用setonscrolllistener中的Web服務將下一個10個項目加載到ListView。當新項目添加到Arraylist時,我只需撥打adapter.notifysetdatachanged
來告訴適配器刷新ListView。添加新項目時ListView閃爍
現在的問題是,無論何時將新項添加到ListView中,整個ListView刷新並導致ListView中已加載的圖像閃爍。是的,我將光盤和內存中的所有圖像緩存起來,並且代碼非常順利地進行緩存。
我也嘗試使用此adapter.addall(myarraylist)
將數據添加到適配器中,但它沒有幫助。 ImageViews仍然閃爍。我在StackOverflow上搜索了很多關於它的信息,發現無法在ListView中添加和顯示更多項目而無需刷新整個listView。我已經知道,但必須有一些方法可以將新數據添加到ListView,而不是刷新已加載的數據。
我正在像這樣設置適配器。
public View getView(int position, View view, ViewGroup parent)
{
int main = R.layout.layout;
ViewHolder holder = null;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(main, null);
holder.image = (ImageView) convertView.findViewById(R.id.imageview);
///More stuff
view.setTag(holder);
} else {
holder = (ViewHolder)view.getTag();
}
// Loading ImageViews by Urls
return view;
}
任何人都可以請點亮它嗎?
不完全確定,但這可能是相關的。 http://stackoverflow.com/questions/13322575/android-visible-listview-images-flicker-when-adding-data-to-arrayadapter – Zerkz
試試這個https://github.com/commonsguy/cwac-endless –
你能展示如何將圖像加載到視圖中?歡呼 – asheinfeld