Метод item
Метод item приёмника
LazyListScope
регистрирует один элемент списка.
Содержимое задают в лямбде content.
Необязательные key и contentType
помогают Compose сохранять состояние при изменении данных.
Синтаксис
item {
Text("abcde")
}
Параметры
| Параметр | Описание |
|---|---|
content |
Лямбда с composable одного пункта списка. |
key |
Стабильный ключ пункта для идентификации при перестроении. |
contentType |
Метка типа содержимого для переиспользования ячеек. |
Пример
Давайте добавим два отдельных пункта через item:
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") }
}
}
}
}
На экране две строки текста пойдут друг за другом в вертикальном списке.
Пример
Давайте зададим ключ для пункта с состоянием:
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(key = "header") {
Text(text = "abcde")
}
item(key = "body") {
Text(text = "12345")
}
}
}
}
}
На экране порядок строк тот же, но Compose сможет точнее сопоставлять пункты при обновлении списка.
Смотрите также
-
метод
items,
который добавляет много пунктов из коллекции -
класс
LazyListScope,
где объявлен item -
функция
LazyColumn,
в лямбде которой вызывают item -
метод
stickyHeader,
который добавляет закреплённый заголовок