Я исправил это, не повторно используя средства визуализации (это действительно звучит более болезненно, чем на самом деле), а вместо этого «кэшировал» их, используя массив с WeakReference объектами. Это делает ваш список быстрым и не позволяет устанавливать изображения на средства визуализации, которые теперь используются для других данных, и в то же время дает ГХ возможность удалить неиспользуемые элементы списка, если у вас мало памяти.
public View getView(int position, View convertView, ViewGroup parent) {
Renderer result = null;
WeakReference<Renderer> wr = (WeakReference<Renderer>) _renderers[position];
if (ref != null)
result = wr.get();
if (result == null) {
result = new Renderer(_context);
// set the texts here and start loading your images
_renderers[position] = new WeakReference<Renderer>(result);
}
return result;
}
Вы должны привести _renderers [position] к WeakReference, потому что java не поддерживает массивы с обобщениями, поэтому _renderers является массивом Objects