Понимание представления Пикассо и переработчика

Я пытаюсь понять, как Пикассо ведет себя с recyclerview с ImageViews.

Можно ли при повторном использовании ViewHolder picasso загрузить старое изображение. Я имею в виду: mPicasso.load(url1).into(imageView); mPicasso.load(url2).into(imageView); Какое изображение будет загружено url или url2?

Как я могу отменить процесс загрузки изображения? Я имею в виду

mPicasso.load(url1).into(imageView); // Start image loading
..
// Image loading not finished, but
// ViewHolder detaches
// Should I remove any pending image loadings here or picasso will do it automatically?

Заранее спасибо!


person Valentin Baryshev    schedule 20.11.2017    source источник
comment
Да, но есть ли встроенный триггер для Пикассо, чтобы отменить загрузку при отсоединении вида?   -  person Valentin Baryshev    schedule 20.11.2017


Ответы (2)


Что ж, Picasso - хорошая библиотека, и она сама справляется с большей частью головной боли программирования. Я не использовал Picasso, так как мне очень нравится работать с glide.

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

person A.s.ALI    schedule 20.11.2017
comment
Спасибо за ответ! Я думаю, что Пикассо не может знать, когда наш держатель вида отсоединен. Поэтому я должен отменять запросы вручную. - person Valentin Baryshev; 20.11.2017
comment
затем проверьте ссылку, именно так вы можете отменить запрос - person A.s.ALI; 20.11.2017

Если вы хотите отменить запрос Picasso на ViewHolder, когда ViewHolder отсоединяется, вы можете использовать cancelRequest(), чтобы сделать что-то подобное в своем адаптере.

 @Override
        public void onViewDetachedFromWindow(ViewHolder holder)
        {
            super.onViewDetachedFromWindow(holder);
            Picasso.with(holder.notificationBannerIV.getContext()).cancelRequest(holder.notificationBannerIV);
        } 
person Mohammed Farhan    schedule 20.11.2017