Это баг коила? отображаю через val avatarImageRequest = rememberAsyncImagePainter(

model = ImageRequest.Builder(context)
.data(vm.getAvatarImage(roomData.avatarUrl))
.build()
)

34 ответов

29 просмотров

Попробуй другую либу, поймёшь, к примеру глайд

Koor-Desart Автор вопроса
Валентин Беркатюк
Попробуй другую либу, поймёшь, к примеру глайд

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

Вроде нормально coil работает. Попробуй asyncimage на всякий случай, вдруг рекомпозиции происходит. И передай все же url, может там проблема

Koor-Desart Автор вопроса
Maxim Filatov
Вроде нормально coil работает. Попробуй asyncimage...

Мб рекомпозиции, но как на зло не работает лейаут инспектор

Koor-Desart Автор вопроса

оказывается при скролле код выполнялся заново потому что лейзи лист

попробуй завернуть ImageRequest.Builder(context) .data(vm.getAvatarImage(roomData.avatarUrl)) .build() в remember(key1 = roomData.avatarUrl) { ... } А ещё я надеюсь что vm.getAvatarImage() не качает картинку и возвращает обратно битмап. Если оно действительно её качает, то нужно это по другому делать.

Koor-Desart Автор вопроса
Dmitry Fabrichny
попробуй завернуть ImageRequest.Builder(context) ...

Оно как раз оно так и делало (либо качало, либо брало из памяти). Я сделал мапу и теперь гружу в нее по айдишнику, и потом по айдишнику беру

Koor Desart
Оно как раз оно так и делало (либо качало, либо бр...

ты можешь просто roomData.avatarUrl в ImageRequest.Builder.data(...) передавать.

Koor-Desart Автор вопроса
Dmitry Fabrichny
ты можешь просто roomData.avatarUrl в ImageRequest...

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

При каждой рекомпозиции ImageRequest создаётся заново. ImageRequest.Builder нужно ремемберить отдельно внутри rememberAsyncImagePainter

Koor Desart
оказывается при скролле код выполнялся заново пото...

А ты кеш не включил потому что loader передавал🤷‍♂ Но странно, элемент экран не покидал, видимо что-то у тебя дёргает рекомпозиции в самом итеме (может лямбду передал, может что не стабильное)

Koor-Desart Автор вопроса
Maxim Filatov
А ты кеш не включил потому что loader передавал🤷‍♂...

Да не, это просто так работает лейзи колумн. У меня все обвернуто в ремемберы, логики в уи нет кроме формата даты и иконки статуса сообщения

Не работает так lazy, при scroll рекомпозиции не вызываются, только если пропал/зашёл на экран, но по видео не та ситуация

Koor-Desart Автор вопроса
Maxim Filatov
Не работает так lazy, при scroll рекомпозиции не в...

Так это и не рекомпозиция. В лейаут инспекторе ничего нет. Во время скролла в композабле не происходит ничего совершенно,

Koor Desart
Так это и не рекомпозиция. В лейаут инспекторе нич...

Но тогда почему asynkrememberpainter перезапускается? Т.е. он грузит картинку, она мигает и по новой. Это жжж не спроста...

Koor-Desart Автор вопроса
Maxim Filatov
Но тогда почему asynkrememberpainter перезапускает...

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

Koor Desart
Тот же вопрос. Я в сам композабл лог д вставил и в...

Вот, это же и есть рекомпозияция. А всю функцию можешь выложить?

Koor-Desart Автор вопроса
Koor Desart
https://gist.github.com/Number869/04cbefc0e9c7082e...

Room же не стабильный, попробуй передать статичный url или обернуть room в дата класс и пометить как stable

Koor-Desart Автор вопроса
Maxim Filatov
Room же не стабильный, попробуй передать статичный...

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

Koor-Desart Автор вопроса
Maxim Filatov
Room же не стабильный, попробуй передать статичный...

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

Koor Desart
Там из-за лаунчд эффекта эта проблема, как минимум...

Надо править в общем. Проблема не в painter🤷‍♂

Koor-Desart Автор вопроса
Maxim Filatov
Надо править в общем. Проблема не в painter🤷‍♂

Получается так. Спасибо за наводку👍

Koor-Desart Автор вопроса
Maxim Filatov
Room же не стабильный, попробуй передать статичный...

оказалось это не рум нестабильный, а лукахед скоуп

Koor Desart
оказалось это не рум нестабильный, а лукахед скоуп

А где именно и как этот соус используется?

Koor-Desart Автор вопроса
Maxim Filatov
Но рум по идее тоже нестабильный...

Не, он как раз таки стабильным оказался. Его передача как параметр не вызывает иекомпозиций

Koor-Desart Автор вопроса
Maxim Filatov
А где именно и как этот соус используется?

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

Так scope же внутри получить можно. Зачем его передавать?🧐 И в примере его нет🤷‍♂

Koor-Desart Автор вопроса
Maxim Filatov
Так scope же внутри получить можно. Зачем его пере...

Нельзя. Будет проблема с инстансами и анимации по итогу не будет

Koor Desart
Нельзя. Будет проблема с инстансами и анимации по ...

Я не очень понимаю что ты делаешь. Ты scope в composable прокидываешь или modifier свой используешь?

Koor-Desart Автор вопроса
Maxim Filatov
Я не очень понимаю что ты делаешь. Ты scope в comp...

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

Koor Desart
Я прокидываю скоуп. Он нужен и модифаеру, и комоза...

Если modifier кастомный можно отнаследовать от element вроде, там есть scope

Koor-Desart Автор вопроса

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

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

Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
В чем может быть причина такого поведения? Библиотека есть, версия совпадает, но не собирается. Скармливаешь в rebar.lock - работает (потом отваливается другая, и так, пока не...
Δημήτηρ
2
Было открыто два проекта в Xcode. В одном делал билд, а в другом просто ковырялся. Проц разогрелся до 99 градусов, изображение на дисплее посыпалось и через 5 секунд комп выру...
Alexander Sherbakov
10
Привет! Подскажите может кто сталкивался, при создании купона выходит вот в таком виде окно. Как поправить это?
Ruslan
4
Всем привет. Понимаю, что вопрос, вероятно, будет крайне абстрактным, но все же. Что можно сделать с "Failed to fetch and copy dep", если это сторонняя зависимость сторонней б...
Δημήτηρ
3
Не читал, но осуждаю. Какая версия вапора? У нас при двойном запросе тоже падал, пока не обновили с патчем
Sergey
6
Карта сайта