我正在使用ArrayAdapter
来填充ListView
。
我用于getView
的代码如下:
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
if(rowView ==null){
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(R.layout.rowlayout_member, parent, false);
}
TextView tvName = (TextView) rowView.findViewById(R.id.label);
TextView tvSurname = (TextView) rowView.findViewById(R.id.label1);
ImageView ivPhoto = (ImageView) rowView.findViewById(R.id.icon);
setRow(tvName ,tvSurname ,ivPhoto,name[position],surname[position],pics[position],); // name, surname and pics are the array of String passed to the adapter.
return rowView;
}
private void setRow(TextView tv1, TextView tv2, ImageView iv, String name, String surname, String photo){
iv.setImageResource(R.drawable.sagoma);
tv1.setText(String.valueOf(name));
tv2.setText(String.valueOf(surname)); //la quantità la devo prendere da un array di
if(photo!=null)
imageLoader.displayImage(basePath+photo, iv, options);
}
这很好,但我有以下问题:
由于我正在使用convertView
,因此视图会被回收,因此当我向上和向下滚动时,可能会发生某些图像被推入ListView
的错误行中,尤其是当我快速滚动时。
如何在不牺牲View的回收的情况下避免此问题?
注意:
imageLoader.displayImage(basePath+immagine, iv, options);
来自Universal image Loader库。此方法调用线程来加载图像。如果不再需要图像(导致滚动),则线程停止。
答案 0 :(得分:0)
滚动时 - 当图像加载器准备好显示图像时,您的图像不再相关 - 您的问题可能在displayImage代码中 - 而不是您的getView代码