Gmail – Contacts – System

Gmail – Contacts – System

В Android 16 пошла мода делать списки полноценными интерактивными, экспрессивными и сегментированными элементами интерфейса. ListItem закрывает базовые сценарии: заголовок, дополнительный текст, иконки, действия справа, клики, отступы, цвета и состояния нажатия. SegmentedListItem добавляет к этому визуальное объединение соседних элементов: можно собрать список из отдельных карточек, которые выглядят как единый аккуратный блок с правильными скруглениями и промежутками.

Зачем нужен ListItem

ListItem – это готовый composable-компонент для строки списка из Material 3. Он позволяет быстро и единообразно собирать элементы списков с текстом, иконками, чекбоксами, свитчами и другой информацией. Без ListItem каждый item приходится собирать вручную через Row, Column и Box, следить за отступами, минимальной высотой, типографикой и состояниями enabled, selected, dragged. ListItem все это знает и делает за тебя.

Когда использовать:

ListItem(
    headlineContent = { Text(text = "Bluetooth") },
    supportingContent = { Text(text = "Выключен") },
    leadingContent = {
        Icon(
            imageVector = Icons.Default.Bluetooth,
            contentDescription = null
        )
    },
    trailingContent = {
        Switch(
            checked = false,
            onCheckedChange = null
        )
    }
)

ListItem существует в 3 вариантах:

  1. Базовый ListItem – стабильный API, не обрабатывает клики и взаимодействия, подходит для статических списков. Логику клика можно навесить через Modifier.
  2. Интерактивный ListItem из Material 3 Expressive с поддержкой кликов, выбора и анимации формы.
  3. SegmentedListItem – такой же интерактивный, но для визуально сгруппированных списков, где элементы выглядят как единый блок с общими скругленными углами.

Подключить

implementation("androidx.compose.material3:material3")