Как использовать ImageRequest.Builder.target в новой версии катушки в компоновке реактивного ранца?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как использовать ImageRequest.Builder.target в новой версии катушки в компоновке реактивного ранца?

Сообщение Anonymous »

Мой Gradle

Код: Выделить всё

// Coil
implementation "io.coil-kt:coil-compose:1.4.0"
Описание проблемы
Ранее я использовал катушку вместе с аккомпаниатором Google, но когда я перехожу на новую версию катушки, как следует из документации, у меня возникают проблемы с целевым методом:

Код: Выделить всё

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.pokedex, PID: 13502
java.lang.IllegalArgumentException: request.target must be null.
at coil.compose.ImagePainterKt.rememberImagePainter(ImagePainter.kt:94)
...
Реализация катушки
Просматривая внутренний код ImagePainter (класс катушки), вы можете видеть, что целевой метод по какой-то причине действительно должен быть нулевым:

Код: Выделить всё

@Composable
fun rememberImagePainter(
request: ImageRequest,
imageLoader: ImageLoader,
onExecute: ExecuteCallback = ExecuteCallback.Default,
): ImagePainter {
requireSupportedData(request.data)
require(request.target == null) { "request.target must be null." }
...
Мой код
Вот мой компонент в Jetpack Compose (компонент изображения находится внутри столбца):

Код: Выделить всё

Image(
modifier = Modifier
.size(120.dp)
.align(Alignment.CenterHorizontally),
painter = rememberImagePainter(
data = entry.imageUrl,
builder = {
crossfade(true)
target {
viewModel.calcDominantColor(it) { color ->
dominantColor = color
}
}
transformations(CircleCropTransformation())
},
),
contentDescription = entry.pokemonName
)
Мне нужен целевой метод для выполнения внутренних операций над моей моделью представления на основе рисуемого объекта, который он передает в качестве параметра. Может кто-нибудь мне помочь?


Подробнее здесь: https://stackoverflow.com/questions/698 ... tpack-comp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»