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

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

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

27 ответов

21 просмотр
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) во вьюхолдере с картинкой используешь библиотеку для загрузки

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта