#android-jetpack-compose
#android-jetpack-compose
Вопрос:
Я хочу применить динамический градиент к поверхности. Когда будет показано новое изображение, в зависимости от цвета этого изображения градиент изменится. Как в примерах Google,
@Composable
fun DatingHomeScreen() {
var imageId = remember { mutableStateOf(R.drawable.camelia) }
val defaultBitmap = imageResource(id = imageId.value).asAndroidBitmap()
var currentBitmap = mutableStateOf(defaultBitmap)
val swatch = generateDominantColorState(currentBitmap.value)
val dominantColors = listOf(Color(swatch.rgb), Color.Black)
Box(
modifier = boxModifier.verticalGradientBackground(
dominantColors
)
){
IconButton(
onClick = {
imageId.value = getRandomImageId()
}
)
}
}
но после сбоя приложения третьего изображения с:
java.util.concurrentmodificationexception
Комментарии:
1. Можете ли вы опубликовать всю свою трассировку стека?
Ответ №1:
getRandomImageId()
вероятно, выполняет асинхронную задачу и обновляет значение изображения. Если поток для обновления образа не содержится в одном экземпляре за раз, возникнет исключение.
Взгляните на https://developer.android.com/reference/kotlin/java/util/ConcurrentModificationException