Метод items
Метод items приёмника
LazyListScope
повторяет лямбду для каждого элемента коллекции
или для индексов от 0 до count - 1.
Текущий элемент передают в itemContent.
Лямбды key и contentType
задают ключ и тип для каждого пункта.
Синтаксис
items(listOf("abcde", "12345")) { line ->
Text(line)
}
Параметры
| Параметр | Описание |
|---|---|
items |
Коллекция элементов или список, по которому строят пункты. |
itemContent |
Лямбда с composable для одного элемента коллекции. |
key |
Лямбда, которая возвращает ключ для элемента. |
contentType |
Лямбда с типом содержимого для переиспользования ячеек. |
Пример
Давайте выведем две строки из списка:
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)
}
}
}
}
}
На экране появятся две строки в порядке элементов списка.
Пример
Давайте построим пункты по числу count:
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 {
LazyColumn {
items(2) { index ->
val text = if (index == 0) "abcde" else "12345"
Text(text = text)
}
}
}
}
}
На экране два текста с теми же строками, что и в примере со списком.
Смотрите также
-
метод
itemsIndexed,
который передаёт в лямбду индекс элемента -
метод
item,
который добавляет один пункт -
метод
items,
аналог для ленивой сетки -
функция
LazyRow,
где items раскладывает пункты в ряд