Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
198 of 502 menu
◀ ▶

Метод itemsIndexed

Метод itemsIndexed приёмника LazyListScope работает как items, но в лямбду itemContent передают индекс и сам элемент. Удобно, когда номер строки нужен в интерфейсе или зависит от чётности индекса.

Синтаксис

itemsIndexed(listOf("abcde", "12345")) { index, line -> Text("$index: $line") }

Параметры

Параметр Описание
items Коллекция, по которой строят пункты списка.
itemContent Лямбда с composable. Первый аргумент - индекс, второй - элемент коллекции.
key Лямбда ключа по индексу и элементу.

Пример

Давайте выведем индекс перед каждой строкой:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val lines = listOf("abcde", "12345") LazyColumn { itemsIndexed(lines) { index, line -> Text(text = "$index: $line") } } } } }

На экране первая строка начнётся с "0: abcde", вторая - с "1: 12345".

Пример

Давайте добавим единицу к индексу в подписи:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val lines = listOf("abcde", "12345") LazyColumn { itemsIndexed(lines) { index, line -> Text(text = "${index + 1}: $line") } } } } }

На экране строки начнутся с "1: abcde" и "2: 12345".

Смотрите также

  • метод items,
    который не передаёт индекс в лямбду
  • метод item,
    который добавляет один пункт
  • класс LazyListScope,
    где объявлен itemsIndexed
  • функция LazyColumn,
    в которой вызывают itemsIndexed
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить