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