Функция LazyColumn
Функция LazyColumn ставит пункты списка
в вертикальный столбец и прокручивает их жестом.
Пункты описывают в лямбде content
с приёмником
LazyListScope.
Положение прокрутки хранит параметр state
из
rememberLazyListState.
Распределение вдоль столбца задаёт verticalArrangement,
выравнивание поперёк - horizontalAlignment.
Синтаксис
LazyColumn {
item { Text("abcde") }
item { Text("12345") }
}
Параметры
| Параметр | Описание |
|---|---|
content |
Лямбда с пунктами списка. Приёмник -
LazyListScope.
|
state |
Состояние прокрутки списка. Класс
LazyListState.
|
verticalArrangement |
Распределение пунктов вдоль столбца.
Значение класса
Arrangement.
|
horizontalAlignment |
Выравнивание пунктов поперёк столбца.
Значение класса
Alignment.
|
reverseLayout |
Если true, первый пункт окажется внизу,
прокрутка пойдёт в обратную сторону.
|
userScrollEnabled |
Если false, пользователь не сможет
листать список жестом.
|
Пример
Давайте выведем два пункта в ленивом столбце:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material3.Text
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
LazyColumn {
item { Text(text = "abcde") }
item { Text(text = "12345") }
}
}
}
}
На экране два текста встанут друг под другом и список можно будет прокручивать, если пунктов станет больше.
Пример
Давайте построим список из коллекции через 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 lines = listOf("abcde", "12345")
LazyColumn {
items(lines) { line ->
Text(text = line)
}
}
}
}
}
На экране появятся те же две строки, каждая из своего элемента списка.
Смотрите также
-
функция
LazyRow,
которая листает пункты по горизонтали -
класс
LazyListScope,
где объявлены item и items -
функция
rememberLazyListState,
которая запоминает положение списка -
метод
verticalScroll,
который прокручивает обычный Column без ленивой сборки