Как составить элементы, находящиеся за кадром, с помощью LazyColumn или LazyRow?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как составить элементы, находящиеся за кадром, с помощью LazyColumn или LazyRow?

Сообщение Anonymous »

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

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

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)
}
}
Для полной готовности этого элемента требуется 1 секунда, но если вы прокрутите страницу, то как составить этот или несколько элементов?
Вообще-то, я' Я также ищу, как хранить состояния Composables, как это делает moveableContentOf в строке/столбце, но по какой-то причине это не работает с LazyColumn? Это также был бы другой подход к хранению составного состояния, при котором композиция и отображение оставались с последним состоянием перед отображением на экране.

Подробнее здесь: https://stackoverflow.com/questions/792 ... or-lazyrow
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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