Класс LazyListScope
Класс LazyListScope - приёмник лямбды
LazyColumn
и
LazyRow.
Его методы добавляют один пункт, серию пунктов
из коллекции или закреплённый заголовок.
Compose создаёт composable только для видимых пунктов,
поэтому длинные списки остаются быстрыми.
Синтаксис
LazyColumn {
item { Text("abcde") }
items(listOf("12345")) { line ->
Text(line)
}
}
Методы
| Метод | Описание |
|---|---|
item |
Добавляет один пункт списка. |
items |
Добавляет пункты по элементам коллекции или по count. |
itemsIndexed |
Как items, но в лямбду передают индекс элемента. |
stickyHeader |
Добавляет заголовок, который остаётся на экране при прокрутке. |
Пример
Давайте смешаем item и items в одном списке:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material3.Text
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val tail = listOf("12345")
LazyColumn {
item { Text(text = "abcde") }
items(tail) { line ->
Text(text = line)
}
}
}
}
}
На экране сначала строка "abcde",
под ней "12345" из коллекции.
Смотрите также
-
функция
LazyColumn,
где доступен LazyListScope -
класс
LazyGridScope,
приёмник лямбды ленивой сетки -
метод
stickyHeader,
который закрепляет заголовок секции -
класс
LazyListState,
который хранит положение прокрутки списка