бэкграунд функции?
itemView.post{}
Но вообще это не то чтобы правильно
а как правильно-то?)
Да возьми библиотеку просто, Glide например
вот кстати про глайд. писал проект. пикассо соснул на такой простой фигне, что устав разбираться с ним заменил на глайд и сразу все заиграло.
обычно на такие, как у меня запросы пишут, что нужно держать ссылку на вью не в холдере, но где ее тогда держать? И если дело не во вью, если я юзаю вьюбиндинг и мне нужно изменить переменную, от которой зависят другие вью в итеме?
Если тебе в ресайкл надо грузить картинку, то лучше бери либу. Глиде, пикассо, коил, их щас много развелось
не картинку
ну тогда не ко мне, я ничего сложнее скармливания адаптеру данных не пилил
Да, я как-то делал галерею с картинками (GridLayout с 4 столбцами). Все библиотечки попробовал, Glide выиграл в итоге. При скролле очень заметна разница.
Я щас в проекте пикассо юзаю. Где-то их сравнения были, может потом с пикассо перенесу
а почему через listener не пробросить обратно и обновить List<ModelЮ?
в смысле, обновить сам итем в аррей листе?
ну для этого нужно будет в модель добавлять еще один объект, а у меня в бэкграунде грузится контент разного типа. И вообще, это по феншую, держать тяжелый объект, типа видео, в модели?
не совсем понял о чем вы, вы же хотели state поменять, не?
это да, просто там стейт для примера, а вообще, там стейт и объект - ссылка или Drawable
просто я хочу понять, как правильно решать такие задачи
Если это просто загрузить картинки - я бы не усложнял и использовал библиотеку.
это не картинки)
Видео?
да, иногда видео, иногда картинки
Плюсую. Глайд выигрывает у Пикассо просто
Картинки и видео сразу раздели на 2 разных вьюхолдера
да, это разные типы холдеров у меня
В общем ты можешь обновить UI через post. Но видео грузить из onBind - это плохая идея. Он будет вызываться много раз, а видео будет грузиться в пустую. Не понятно, как ты отпишешься от этих запросов. Это вызовет утечку памяти и проблемки. Я бы так сделал: 1) сетаешь в адаптер айтемы, которые есть изначально. 2) Пока видео нет - на этом айтеме показываешь прогресс. 3) когда видео подгрузилось - обновляешь этот айтем. 4) во вьюхолдере с картинкой используешь библиотеку для загрузки
Обсуждают сегодня