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

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

Результаты

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

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

Для данной реализации требуется, чтобы в вашем проекте был установлен уровень 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 повторно использует отрисованные элементы для каждого элемента заданного типа контента.

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

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

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

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

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