169 похожих чатов

Помогите понять, как в ресайклер адаптере менять значение биндинг-переменной в

бэкграунд функции?

27 ответов

7 просмотров
Remie-Hamilton Автор вопроса

https://pastebin.com/EVJSHqaV

itemView.post{}

Но вообще это не то чтобы правильно

Remie-Hamilton Автор вопроса

а как правильно-то?)

Да возьми библиотеку просто, Glide например

вот кстати про глайд. писал проект. пикассо соснул на такой простой фигне, что устав разбираться с ним заменил на глайд и сразу все заиграло.

Remie-Hamilton Автор вопроса

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

Если тебе в ресайкл надо грузить картинку, то лучше бери либу. Глиде, пикассо, коил, их щас много развелось

Remie-Hamilton Автор вопроса

не картинку

ну тогда не ко мне, я ничего сложнее скармливания адаптеру данных не пилил

Да, я как-то делал галерею с картинками (GridLayout с 4 столбцами). Все библиотечки попробовал, Glide выиграл в итоге. При скролле очень заметна разница.

Я щас в проекте пикассо юзаю. Где-то их сравнения были, может потом с пикассо перенесу

а почему через listener не пробросить обратно и обновить List<ModelЮ?

Remie-Hamilton Автор вопроса

в смысле, обновить сам итем в аррей листе?

Remie-Hamilton Автор вопроса

ну для этого нужно будет в модель добавлять еще один объект, а у меня в бэкграунде грузится контент разного типа. И вообще, это по феншую, держать тяжелый объект, типа видео, в модели?

не совсем понял о чем вы, вы же хотели state поменять, не?

Remie-Hamilton Автор вопроса

это да, просто там стейт для примера, а вообще, там стейт и объект - ссылка или Drawable

Remie-Hamilton Автор вопроса

просто я хочу понять, как правильно решать такие задачи

Если это просто загрузить картинки - я бы не усложнял и использовал библиотеку.

Remie-Hamilton Автор вопроса

это не картинки)

Видео?

Remie-Hamilton Автор вопроса

да, иногда видео, иногда картинки

Плюсую. Глайд выигрывает у Пикассо просто

Картинки и видео сразу раздели на 2 разных вьюхолдера

Remie-Hamilton Автор вопроса

да, это разные типы холдеров у меня

В общем ты можешь обновить UI через post. Но видео грузить из onBind - это плохая идея. Он будет вызываться много раз, а видео будет грузиться в пустую. Не понятно, как ты отпишешься от этих запросов. Это вызовет утечку памяти и проблемки. Я бы так сделал: 1) сетаешь в адаптер айтемы, которые есть изначально. 2) Пока видео нет - на этом айтеме показываешь прогресс. 3) когда видео подгрузилось - обновляешь этот айтем. 4) во вьюхолдере с картинкой используешь библиотеку для загрузки

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
А чем вам питонисты не угодили?😂
.
79
Хтось використовував Vapor на Windows?
Jaroshevskii
15
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Какое виндузовое сообщение приходит TTabSheet, что риэлайняться контролы на нем, даже у которых парент другой? Ситуация: открываю форму - кнопок нет, перелистываю на другой т...
Катерина Свиридова
7
Карта сайта