Android Listiem Recycle при прокрутке вверх или вниз - PullRequest
0 голосов
/ 17 декабря 2009

Я использую сложный элемент списка, как указано ниже, для отложенной загрузки изображения. Я загружаю изображение каждого элемента списка в отдельную асинхронную задачу, чтобы приложение не зависало при загрузке изображения.

проблема возникает, когда я прокручиваю список, новое изображение lisitems заменяет эффект изображения, когда я сверляю вниз, я обнаружил, что

например, если по умолчанию 5 элементов списка помещаются на экран, когда я прокручиваю следующий отображаемый список, это фактически повторяет предыдущий элемент списка, который отображал, поэтому также содержит изображение предыдущего элемента списка до нового загруженного изображения после нового изображения загруженное из веб-изображения изображение заменяется, и пользователь находит заменяющий эффект изображения при выполнении прокрутки вверх или прокрутки вниз каждый раз, когда изображения заменяются из-за переработки ...

Есть ли способ попросить Android не перезаписывать элемент списка при прокрутке вниз или вверх, чтобы он не имел эффекта замены изображения.

ценится любое хорошее предложение

альтернативный текст http://www.freeimagehosting.net/uploads/8237cbd584.jpg

1 Ответ

1 голос
/ 17 декабря 2009

Насколько я понимаю, вы используете метод getView () из вашего адаптера, чтобы предоставить свой собственный макет для элемента списка. Так что, вероятно, у вас есть что-то вроде этого:

public View getView(int position, View convertView, ViewGroup parent) {

        if(null == convertView){
            convertView = mInflater.inflate(R.layout.row, null);
            //...               
        }
        //... setting new values for your widgets
        return convertView
    }

Если это так, то это ваш призыв перерабатывать предметы. Такая реализация предотвращает частый вызов сборщика мусора, но если это не проблема, и вы можете справиться с GC, то вы можете просто избавиться от if (null == convertView) и создать свой элемент с нуля - каждый раз, когда метод getView вызывается.

Но, вероятно, это не очень хорошая идея, было бы лучше, если бы вы извлекли свой виджет изображения из переработанного элемента, установили какое-то временное изображение, а затем запустили асинхронную задачу для загрузки подходящего изображения.
Regads!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...