Создайте список, используя несколько типов элементов.

Вы можете использовать список с несколькими типами элементов для отображения смешанных типов контента, таких как текст, изображения и интерактивные элементы.

Совместимость версий

Для этой реализации требуется, чтобы в minSDK вашего проекта был установлен уровень API 21 или выше.

Зависимости

Добавить несколько типов элементов

Вы можете указать тип контента для каждого элемента макета при составлении списка или сетки с несколькими типами элементов:

@Composable
fun ListWithMultipleItems(messages: List<Any>) {
    LazyColumn {
        items(
            messages.size,
            contentType = { it }
        ) {
            for (message in messages)
                when (message) {
                    is MediaStore.Audio -> AudioMessage(message)
                    is Text -> TextMessage(message)
                }
        }
    }
}

@Composable
fun AudioMessage(message: MediaStore.Audio) {
    TODO("Not yet implemented.")
}

@Composable
fun TextMessage(message: Text) {
    TODO("Not yet implemented.")
}

data class SampleMessage(val text: String, val content: Any)

Ключевые моменты о коде

  • Указывает тип контента для каждого элемента, устанавливая contentType в items() .
  • Сопоставляет каждый тип контента с соответствующим составным объектом. Например, Audio — это contentType , который определен в другом месте и сопоставлен с составным элементом AudioMessage .
  • Compose повторно использует визуализированные составные элементы для каждого элемента данного типа контента.

Результаты

Вывод кода, показывающий аудио и текстовые сообщения
Рисунок 1. Вывод кода, показывающий аудио и текстовые сообщения.

Коллекции, содержащие это руководство

Это руководство является частью тщательно подобранной коллекции быстрых руководств, охватывающих более широкие цели разработки Android:

Списки и сетки позволяют вашему приложению отображать коллекции в визуально приятной форме, удобной для использования пользователями.
Узнайте, как компонуемые функции позволяют легко создавать красивые компоненты пользовательского интерфейса на основе системы дизайна Material Design.
В этой серии видеороликов представлены различные API Compose, быстро показано, что доступно и как их использовать.

Есть вопросы или отзывы

Перейдите на нашу страницу часто задаваемых вопросов и узнайте о кратких руководствах или свяжитесь с нами и сообщите нам свои мысли.