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

Код: Выделить всё
LazyRow(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.spacedBy(8.dp),
contentPadding = PaddingValues(16.dp),
) {
items(30) {
var loading by remember {
mutableStateOf(true)
}
LaunchedEffect(Unit) {
println("Composing First LazyRow item: $it")
delay(1000)
loading = false
}
MyRow(itemWidth, loading, it)
}
}
@Composable
private fun MyRow(itemWidth: Dp, loading: Boolean, it: Int) {
Box(
modifier = Modifier
.size(itemWidth, 100.dp)
.background(if (loading) Color.Red else Color.Green, RoundedCornerShape(16.dp))
.padding(16.dp)
) {
Text("Row $it", fontSize = 26.sp, color = Color.White)
}
}
Вообще-то, я' Я также ищу, как хранить состояния Composables, как это делает moveableContentOf в строке/столбце, но по какой-то причине это не работает с LazyColumn? Это также был бы другой подход к хранению составного состояния, при котором композиция и отображение оставались с последним состоянием перед отображением на экране.
Подробнее здесь: https://stackoverflow.com/questions/792 ... or-lazyrow