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

Код: Выделить всё
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