Списки в Jetpack Compose Glimmer

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

В Jetpack Compose Glimmer списки представляют собой вертикально прокручиваемые компоненты пользовательского интерфейса, которые эффективно отображают только видимые элементы, предназначенные для обеспечения определенного поведения и совместимости ввода для приложений очков с искусственным интеллектом. Jetpack Compose Glimmer реализует это с помощью компонентов VerticalList и ListItem .

Рисунок 1. Пример нескольких различных стилей списков в Jetpack Compose Glimmer.

VerticalList — это компонент Jetpack Compose Glimmer для отображения вертикального прокручиваемого контента. Он предлагает ту же функциональность API, что и LazyColumn , но с особенностями поведения, оптимизированными для Jetpack Compose Glimmer и очков с искусственным интеллектом и дисплеем.

В списках Glimmer в Jetpack Compose есть несколько уникальных ограничений:

  • Если список содержит больше элементов, чем может поместиться в представлении, вблизи границ списка используется черная полупрозрачная рамка.

Пример: Отобразить вертикальный список из трех элементов.

Приведённый ниже код демонстрирует, как использовать компоненты VerticalList и ListItem для создания списка из трёх элементов:

@Composable
fun GlimmerListWithButtons() {
    VerticalList(
        contentPadding = PaddingValues(16.dp),
        verticalArrangement = Arrangement.spacedBy(20.dp)
    ) {
        items(count = 3) { index ->
            ListItem(
                onClick = { /* Handle Click */ },
                leadingIcon = if (index == 1) {
                    { Icon(Icons.Rounded.Favorite, "Favorite Icon") }
                } else null
            ) {
                Text("List Item + $index")
            }
        }
    }
}

Основные моменты, касающиеся кода.

  • В списке отображаются три динамически генерируемых элемента, каждый из которых является ListItem ).
  • Каждый ListItem можно настроить, и к нему можно добавить иконку.