Создание текста в Wear OS

  
Создавайте приложения Jetpack Compose для устройств Wear OS, добавляя функции для поддержки разных размеров устройств и жестов навигации.
Последнее обновление Основная версия Release Candidate Бета-версия Альфа-версия
7 октября 2026 г. 1.7.1 - - 1.8.0-alpha01

Как объявлять зависимости

Чтобы добавить зависимость от Wear, необходимо добавить в проект хранилище Google Maven. Подробная информация приведена в репозитории Google Maven.

Добавьте в файл build.gradle приложения или модуля зависимости для нужных артефактов:

классный

dependencies {
    implementation "androidx.wear.compose:compose-foundation:1.7.0"

    // For Wear Material Design UX guidelines and specifications
    implementation "androidx.wear.compose:compose-material:1.7.0"

    // For integration between Wear Compose and Androidx Navigation libraries
    implementation "androidx.wear.compose:compose-navigation:1.7.0"

    // For Wear preview annotations
    implementation("androidx.wear.compose:compose-ui-tooling:1.7.0")
    
    // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material.
    // androidx.wear.compose:compose-material is designed as a replacement
    // not an addition to androidx.compose.material:material.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material please raise a bug to let us know.
}

Котлин

dependencies {
    implementation("androidx.wear.compose:compose-foundation:1.7.0")

    // For Wear Material Design UX guidelines and specifications
    implementation("androidx.wear.compose:compose-material:1.7.0")

    // For integration between Wear Compose and Androidx Navigation libraries
    implementation("androidx.wear.compose:compose-navigation:1.7.0")
    
    // For Wear preview annotations
    implementation("androidx.wear.compose:compose-ui-tooling:1.7.0")

    // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material.
    // androidx.wear.compose:compose-material is designed as a replacement
    // not an addition to androidx.compose.material:material.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material please raise a bug to let us know.
}

Подробнее о зависимостях приведено в статье Добавление зависимостей сборки.

Отзыв

Ваши отзывы помогают нам улучшать Jetpack. Если вы обнаружите проблемы или решите что-то предложить, отправьте отзыв. Прежде чем создавать новую проблему, ознакомьтесь с существующими. Вы можете добавить свой голос к существующей проблеме, нажав на значок звездочки.

Как создать новую проблему

Дополнительную информацию можно найти в документации по системе отслеживания ошибок.

Версия 1.8

Версия 1.8.0-alpha01

7 октября 2026 г.

Выход androidx.wear.compose:compose-*:1.8.0-alpha01. Версия 1.8.0-alpha01 содержит эти коммиты.

Изменения в API

  • Добавлены новые перегрузки AppScaffold и ScreenScaffold без параметра timeText, которые задают рекомендуемое направление для перехода с Wear Compose 1.8 на новую строку системного статуса. Если на устройстве установлена более старая версия ОС без строки системного статуса, новые перегрузки будут заменяться на значение по умолчанию TimeText. Существующие перегрузки теперь по умолчанию переносятся в строку состояния системы, если не указан специальный пользовательский элемент timeText. (I40a5e)
  • Добавлен вспомогательный компонент StatusBarSuppression, позволяющий скрыть строку состояния системы в полноэкранных и наложенных компонентах. (I387c3)
  • Добавлен модификатор Introduced Modifier.curveToEdge, который использует шейдер, чтобы изогнуть компонент к границе родительского контейнера вокруг центра, всегда рассматривая контейнер как круг. Известные проблемы: у компонентов, на которые можно нажать, будут неправильные границы, а TalkBack не будет выделять компоненты. (I8bbaa)
  • В Wear Compose Material 3 добавлены элементы PullToRefreshBox и PullToRefreshState с расстояниями перетаскивания и порогами обновления, адаптированными для устройств Wear OS.(Iee9a5)
  • Перенос функций PullToRefreshBox, PullToRefreshDefaults и PullToRefreshState в стабильные общедоступные API в Wear Compose Material 3. (I079b6)
  • Добавляет перегрузку SwipeToReveal с параметром преобразования для поддержки преобразований контейнеров в TransformingLazyColumn. (I328ce)
  • Теперь библиотеки предназначены для Kotlin 2.2 и требуют kotlinc 2.2 (I82396, b/498369605).
  • Удален флаг экспериментальной функции WearComposeFoundationFlags.isTransformingLazyColumnClickableThresholdEnabled. Порог кликабельности в TransformingLazyColumn теперь всегда включен. (Ib68c8)
  • Удален экспериментальный флаг WearComposeFoundationFlags.isTransformingLazyColumnPinnableContainerEnabled. (Ibad2e)

Исправление ошибок

  • Исправлена ошибка в Wear Compose Foundation HorizontalPager, из-за которой при обработке жестов неправильно определялся приоритет между пролистыванием и проведением для закрытия. (I54caf)
  • Добавлен элемент Modifier.testTag("time_text") в TimeText, чтобы его можно было обнаружить в отчетах о тестировании, когда строка состояния системы возвращается к composable-функции TimeText по умолчанию. (Iacb09)
  • Устранено исключение IllegalStateException в OneHandedGestureModifier.updateCompositionLocals, возникающее при попытке доступа к узлам до их подключения. (I662271)
  • Добавлена поддержка жеста AlertDialog, поэтому прокрутка вниз и нажатия кнопки Confirm доступны по умолчанию. (I51f81)
  • Устранена проблема с мерцанием экрана в приложении TimeText при переходе к унаследованной строке состояния. Для этого мы улучшили логику подавления видимости в ScreenContent. (I12dd01)
  • Устранена проблема, из-за которой компоненты, подавляющие строку системного статуса (например, Stepper), возвращались к отрисовке в приложении TimeText. (I86830)
  • Исправлена ошибка, из-за которой StatusBarSuppression() не учитывал LocalStatusBarEnabled, когда глобальная строка статуса была отключена, что приводило к лишним проходам макета в диалоговых окнах. (I4f77f6)
  • Исправлена проблема в Wear Material3 Scaffold, из-за которой currentScrollInfoProvider не наследовал значения от экранов, расположенных ниже, если верхний экран предоставлял нулевое значение. (I97874)
  • Добавлена поддержка скрытия строки состояния Dialog и вложенных элементов ScreenScaffold в Wear Material3 Scaffold. (I01772)
  • Устранена проблема в AppScaffold, из-за которой при прокрутке снова появлялось наложение строки состояния, когда верхний элемент был закреплен. (I421b3)
  • Устранена проблема, из-за которой верхнее поле ScreenScaffold сворачивалось при открытии экранов с отключенным режимом строки состояния. (I7cf4f)
  • Добавлена поддержка оркестровки строки состояния в многооконном режиме для каркасов Wear Compose Material3, позволяющая диалоговым окнам и отдельным окнам управлять собственными контроллерами строки состояния системы. (Ibf82c)
  • Улучшена TransformingLazyColumnобработка отрицательных значений интервалов между элементами (I99ac7).
  • Оптимизированы индикаторы жестов: фон указателя индикатора в ресурсах заменен на функции холста с использованием путей. (Iee2b7)
  • Оптимизированы индикаторы жестов: основные и закрывающие AVD в ресурсах заменены функциями рисования с использованием путей. (Ib2d05)
  • Зависимость androidx.lifecycle:lifecycle-runtime была обновлена до версии 2.10.0. Эта версия необходима для выполнения встроенных проверок lint времени выполнения жизненного цикла с AGP версии 9.5.0-alpha04 или более поздней. (I99bfd, b/556807521)
  • Обновлены базовые профили для библиотек Wear Compose Foundation, Material3 и Navigation3. (I9b0a3)

Версия 1.7

Версия 1.7.1

7 октября 2026 г.

Выход androidx.wear.compose:compose-*:1.7.1. Версия 1.7.1 содержит эти коммиты.

Исправление ошибок

  • Исправлено мерцание анимации OneHandedGestureHintScrollIndicator (I650c6)
  • Удалите блокировку прокрутки из OneHandedGestureScrollIndicator и управляйте видимостью индикатора в ScreenScaffold с помощью локальной композиции (I13050).
  • Исправьте ошибку IllegalStateException в Modifier.oneHandedGesture (I35151)

Версия 1.7.0

23 сентября 2026 г.

Выход androidx.wear.compose:compose-*:1.7.0. Версия 1.7.0 содержит эти коммиты.

Важные изменения с версии 1.6.0

  • Добавлен новый API для управления одной рукой, который включает обработчики жестов для основного действия (двойное сведение пальцев) и действия "Закрыть" (поворот запястья), а также анимированные индикаторы для нажатия, прокрутки и перехода на другую страницу, которые появляются, когда жесты доступны.
  • Добавлена поддержка PinnableContainer в TransformingLazyColumn для хранения объекта в памяти вместо его удаления, когда он прокручивается за пределы области просмотра.
  • TransformingLazyColumn теперь поддерживает анимацию элементов, когда они выходят за пределы области просмотра. Благодаря этому они плавно исчезают с экрана, а не просто исчезают.
  • Добавлен параметр firstLayoutItemProvider в TransformingLazyColumn в качестве необязательной настройки для первого элемента макета. Если указан поставщик, он определяет объект и его край, используемые в качестве исходной точки размещения. Это позволяет контролировать направление сдвига контента при динамическом обновлении объектов.
  • Улучшения SwipeToReveal для поддержки вложенной прокрутки, быстрого пролистывания, второго тактильного отклика при частичном раскрытии и actionContentSpacing для расстояния между основным контентом и кнопками действий.
  • Добавлены аннотации @FrequentlyChangingValue и @RememberInComposition, которые позволяют получать предупреждения от инструмента lint, чтобы предотвратить проблемы с производительностью, вызванные чтением часто обновляемых данных о состоянии или невозможностью запомнить объекты во время композиции.

Исправление ошибок

  • Зависимость androidx.lifecycle:lifecycle-runtime была обновлена до версии 2.10.0. Эта версия необходима для выполнения встроенных проверок lint времени выполнения жизненного цикла с AGP версии 9.5.0-alpha04 или более поздней. (If8e16)

Версия 1.7.0-rc01

9 сентября 2026 г.

Выход androidx.wear.compose:compose-*:1.7.0-rc01. Версия 1.7.0-rc01 содержит эти коммиты.

  • В этом выпуске версия Compose для Wear OS 1.7.0 стала релиз-кандидатом, но в остальном он не отличается от версии 1.7.0-beta02.

Версия 1.7.0-beta02

26 августа 2026 г.

Выход androidx.wear.compose:compose-*:1.7.0-beta02. Версия 1.7.0-beta02 содержит эти коммиты.

Исправление ошибок

  • Обновлены базовые профили для библиотек Wear Compose Foundation, Material3 и Navigation3. (I9b0a3)
  • Исправлено мерцание анимации подсказки жеста в OneHandedGestureScrollIndicator. (6e0c1cb)

Версия 1.7.0-beta01

12 августа 2026 г.

Выход androidx.wear.compose:compose-*:1.7.0-beta01. Версия 1.7.0-beta01 содержит эти коммиты.

Версия 1.7.0-beta01 библиотеки Compose для Wear OS означает, что в ней реализованы все функции и API заблокирован. В Wear Compose 1.7.0-beta01 добавлены следующие новые функции:

  • Поддержка жестов одной рукой, включая обработчики жестов для основного действия (например, двойного щипка) и действия закрытия (например, поворота запястья), а также анимированные индикаторы, которые показывают, когда жесты доступны для кликабельных элементов интерфейса (например, кнопок и карточек), списков с возможностью прокрутки и пейджеров.
  • Добавлена поддержка PinnableContainer в TransformingLazyColumn для хранения объекта в памяти вместо его удаления, когда он прокручивается за пределы области просмотра.
  • TransformingLazyColumn теперь поддерживает анимацию элементов, когда они выходят за пределы области просмотра. Благодаря этому они плавно исчезают с экрана, а не просто исчезают.
  • Добавлен параметр firstLayoutItemProvider в TransformingLazyColumn в качестве необязательной настройки для первого элемента макета. Если указан поставщик, он определяет объект и его край, используемые в качестве исходной точки размещения. Это позволяет контролировать направление сдвига контента при динамическом обновлении объектов.
  • Улучшения SwipeToReveal для поддержки вложенной прокрутки, быстрого пролистывания, второго тактильного отклика при частичном раскрытии и actionContentSpacing для расстояния между основным контентом и кнопками действий.
  • Добавлены аннотации @FrequentlyChangingValue и @RememberInComposition, которые позволяют получать предупреждения от инструмента lint, чтобы предотвратить проблемы с производительностью, вызванные чтением часто обновляемых данных о состоянии или невозможностью запомнить объекты во время композиции.

Изменения в API

  • Переименованы следующие объекты: GestureAction в OneHandedGestureAction, GesturePriority в OneHandedGesturePriority и GestureIndicatorSize в OneHandedGestureIndicatorSize (Ifc7f4, b/522761843).

Исправление ошибок

  • Исправлена проблема в ScrollInfoProvider, из-за которой TimeText мигал или исчезал при изменении или изменении размера элементов списка. (Ief762, b/537433564)

Версия 1.7.0-alpha07

29 июля 2026 г.

Выход androidx.wear.compose:compose-*:1.7.0-alpha07. Версия 1.7.0-alpha07 содержит эти коммиты.

Изменения в API

  • Изменен код API OneHandedGesture. Вместо логического индикатора состояния (который требовал сброса после показа индикатора) используется функция приостановки для запуска анимации. У каждого типа индикатора теперь есть собственный класс состояния, в котором заключена логика анимации. Переименовано с key на gestureId в GestureConfiguration. (I7974f, b/522761843)
  • Добавлен переизбыток контента в одном слоте CompactButton (Idaffc, b/527889640)
  • Добавление поддержки PinnableContainer в TransformingLazyColumn (Id3dc9, b/492418172)

Исправление ошибок

  • Добавлены и обновлены документы на уровне модулей для Wear Compose Foundation, Material 3 и Navigation 3. (I111d7, b/498153783)
  • Исправлена проблема в ScreenScaffold, из-за которой повторные композиции могли приводить к тому, что не запомненные элементы ScrollInfoProvider сбрасывали состояние отслеживания прокрутки. (I8be02, b/524620765)
  • Ошибка адреса IllegalArgumentException: maxWidth must be >= than minWidth, вызванная большими горизонтальными отступами (I014e8, b/531192734)
  • Исправлена анимация EdgeButton при быстром перелистывании. (I9657f, b/512700520)

Версия 1.7.0-alpha06

15 июля 2026 г.

Выход androidx.wear.compose:compose-*:1.7.0-alpha06. Версия 1.7.0-alpha06 содержит эти коммиты.

Изменения в API

  • Перемещены функции ButtonContent, AppCardContent и TitleCardContent для Material3 в объекты ButtonDefaults и CardDefaults соответственно. (I8d589, b/527889640)
  • Удалите значение по умолчанию из параметра Modifier.oneHandedGesture gestureLabel (Ica100, b/527068051).
  • Переименуйте параметр gestureLabel в onGestureLabel в Modifier.oneHandedGesture и сделайте его допускающим нулевое значение, чтобы обеспечить согласованность с другими параметрами contentDescription (I952a8, b/527068051).
  • Добавлен параметр OneHandedGestureIndicatorState, чтобы координировать видимость и анимацию между Modifier.oneHandedGesture() и индикаторами жестов. Замените InteractionSource на подход, основанный на статусе, чтобы улучшить управление жизненным циклом. Добавлен параметр wrapAround в OneHandedGestureDefaults.scrollToNextPage для единообразия с другими функциями прокрутки по умолчанию. (I9e1e3, b/522761843)

Исправление ошибок

  • В документацию по параметру interactionSource для параметра Modifier.oneHandedGesture добавлено описание того, какие взаимодействия передаются (I2dc8d).
  • Поддержка жестов одной рукой в AlertDialog по умолчанию временно удалена из-за проблем с зависимостью от Wear SDK в потребителях, которые в противном случае не используют Wear SDK или жесты одной рукой. (Ib19e0, b/503841738)
  • Улучшен объект TransformingLazyColumn: теперь он поддерживает анимацию размещения для элементов, выходящих за пределы области просмотра. Благодаря этому они не исчезают, а скользят за экран. Также исправлена проблема с визуальным прилипанием, из-за которой динамически масштабируемые объекты мгновенно переходили к целевой высоте во время анимации размещения (I89d84, b/525071281).
  • Используйте ItemInfo на основе индекса в firstVisibleItemLayoutItemInfo. (I256e3, b/527881678)
  • Исправлено поведение анимации TimePicker при включенной функции "Меньше движения". (Ic9150, b/467288916)

Версия 1.7.0-alpha05

1 июля 2026 г.

Выход androidx.wear.compose:compose-*:1.7.0-alpha05. Версия 1.7.0-alpha05 содержит эти коммиты.

Изменения в API

  • В библиотеку Foundation добавлен интерфейс TransformingLazyColumnFirstLayoutItemProvider, позволяющий настраивать контент, который меняет направление при обновлении. В библиотеке Material3 реализованы готовые решения rememberTransformingLazyColumnFirstLayoutItemProvider и rememberTransformingLazyColumnFirstVisibleItemProvider. (I54814, b/503353428)

  • В TransformingLazyColumnFirstLayoutItemProvider параметр по умолчанию переименован с current на centerItem. Добавлены расширения TransformingLazyColumnState firstVisibleItemLayoutItemInfo и layoutItemInfoOf, а также обновлено расширение rememberTransformingLazyColumnFirstLayoutItemProvider, чтобы использовать чистую лямбда-функцию на основе параметров. (I9a8d9, b/503353428)

  • Добавлены перегрузки для многослотовых кнопок и карточек Material3, которые можно использовать при управлении одной рукой. (I74ccb, b/515718015, b/490343658)

  • Добавлена поддержка специальных возможностей для жестов одной рукой. (I0054d, b/519085906)

  • Переименование OneHandedGestureDefaults.scrollToNextItem() в OneHandedGestureDefaults.scrollDownToNextItem и добавление параметра wrapAround в функции прокрутки OneHandedGestureDefaults (I940ce, b/509639667)

  • Добавьте non-composable Modifier.oneHandedGesture(), если разработчик хочет указать ключ вручную. (I191e1, b/504712626)

  • Переименуйте API offsetOf в RevealState на positionOf. (I2675f, b/522387997)

  • Добавлен параметр actionContentSpacing в SwipeToReveal, позволяющий разработчикам настраивать расстояние между слотами действий и контентом. (I2abaf, b/507073912)

Исправление ошибок

  • Исправлена проблема в ScreenScaffold, из-за которой повторные композиции могли приводить к тому, что не запомненные элементы ScrollInfoProvider сбрасывали состояние отслеживания прокрутки. (I98f6d, b/524620765)
  • TransformingLazyColumn Цвет полосы прокрутки соответствует цвету фона индикатора жеста во время анимации индикатора (I353fb, b/524915104)
  • Изменено значение по умолчанию gestureIndicatorTint на LocalContentColor для OneHandedGestureIndicator (I1abd3, b/524228063)
  • Параметризируйте описание контента для выбора дня и года в DatePicker, чтобы поддерживать локализацию. (I5dcd9, b/430563857)
  • Внедрение адаптивной частоты обновления для GestureIndicators в зависимости от того, отрисовывается ли индикатор внутри или за пределами компонента интерфейса хоста. (Ic618f, b/515071642)
  • Исправлена проблема с одновременным выполнением жестов одной рукой (I7b95f, b/512086558).

Версия 1.7.0-alpha04

3 июня 2026 г.

Выход androidx.wear.compose:compose-*:1.7.0-alpha04. Версия 1.7.0-alpha04 содержит эти коммиты.

Изменения в API

  • Добавлены функции RevealState.drag(), SwipeToRevealDragScope и пользовательский параметр flingBehavior в SwipeToReveal, чтобы можно было программно управлять жестами пролистывания, смещениями и анимацией перехода в конечное состояние. (Ibfe56, [b/484185090]
  • Расширенная поддержка OneHandedGestureIndicator для основных и дополнительных действий, переход на архитектуру привязки InteractionSource для автоматического управления жизненным циклом. (I7e893, [b/512836472]
  • Добавлен новый способ прокрутки с помощью жестов для компонентов на основе ScalingLazyColumn и диалоговых окон с предупреждениями. В этом обновлении по умолчанию задана прокрутка экрана на 50 %, чтобы сделать навигацию более предсказуемой. Кроме того, добавлен режим привязки к объекту для точной навигации. (Ie9cfb, [b/509639667]
  • Замените флаг isOneHandedGesturesInAlertDialogEnabled в Wear Compose Material3 на флаги LocalOneHandedGestureEnabled CompositionLocal, которые можно использовать для отключения жестов одной рукой в иерархиях компонентов. (Ib9240, [b/516777416])
  • Прекращена поддержка функции ButtonDefaults.ExtraSmallIconSize и ButtonDefaults.SmallIconSize. Эти значения по умолчанию были специфичны для CompactButton и были перенесены в CompactButtonDefaults.ExtraSmallIconSize и CompactButtonDefaults.SmallIconSize соответственно. (Id747c, [b/513588028]

Исправление ошибок

  • Исправлена анимация EdgeButton при быстром перелистывании. (I88215, [b/512700520]
  • Исправлена ошибка, из-за которой AppScaffold TimeText не обновлялись при рекомпозиции. (Iecea5, [b/512439755]
  • ScreenScaffold должен явно использовать PaddingValues, предоставленный лямбда-функцией внутреннего контента. (I20d71, [b/512355364]
  • Добавлены аннотации @FrequentlyChangingValue и @RememberInComposition, чтобы показывать предупреждения lint и предотвращать проблемы с производительностью, вызванные чтением часто обновляемых данных или забыванием объектов во время композиции. (I955f4, [b/409488336]
  • Убедитесь, что эффект пульсации исходит из центра кнопки, когда для объектов Button активируется жест одной рукой. (Ie61ec, [b/514600304]
  • Устранена проблема конфликта клавиш в Modifier.oneHandedGesture путем включения действия жеста и приоритета в автоматически сгенерированную клавишу. (I49760, [b/517045657]

Версия 1.7.0-alpha03

19 мая 2026 г.

Выход androidx.wear.compose:compose-*:1.7.0-alpha03. Версия 1.7.0-alpha03 содержит эти коммиты.

Изменения в API

  • Добавьте non-composable Modifier.oneHandedGesture(), если разработчик хочет указать ключ вручную. (I191e1, b/504712626)
  • Удалены индикаторы жестов из OneHandedGestureDefaults и добавлена поддержка цвета для жестов одной рукой (I7934f, b/505009712, b/504712626).
  • В AlertDialog добавлена явная обработка жестов закрытия одной рукой. (Id71e8, b/509675781)
  • DeferredTargetAnimation больше не является экспериментальной функцией. Отключите ее. (I1e4ae, b/500030165)

Исправление ошибок

  • Исправлена проблема с одновременным выполнением жестов одной рукой (I7b95f, b/512086558).
  • Исправлена ошибка, из-за которой индикаторы жестов одной рукой зеркально отражались в зависимости от ориентации запястья, а не LayoutDirection. (I6db5d, b/512003346)
  • Исправлена отрисовка границ в элементах TLC (I0c3c1, b/510772213)
  • Добавлены встроенные изображения для примеров в Kdoc для файлов SurfaceTransformation.kt, SwitchButton.kt и TextButton.kt. Теперь эти изображения будут показываться в документации на страницах Wear Compose Material 3 DAC, чтобы разработчики могли сразу понять, как выглядит каждый вариант кнопки и пример ее использования. (Ib53ae, b/484905061)
  • Добавлены встроенные изображения для всех примеров в файле Kdoc Button.kt. Теперь эти изображения будут показываться прямо в документации на страницах DAC Material 3 для Wear Compose, чтобы разработчики могли сразу видеть, как выглядит каждый вариант кнопки и пример ее использования. (Ie2fb5, b/484905061)
  • Добавлены встроенные предпросмотры изображений для примеров в KDoc в Card.kt, IconButton.kt, LevelIndicator.kt и ListHeader.kt. Теперь эти изображения будут показываться в документации на страницах Wear Compose Material 3 DAC. (I371bc, b/484905061)
  • Добавлены встроенные предварительные просмотры изображений для примеров в KDoc для Picker, SegmentedCircularProgressIndicator, Slider и Stepper. Теперь эти изображения будут показываться в документации на страницах Wear Compose Material 3 DAC, чтобы разработчики могли сразу понять, как выглядят эти компоненты и примеры. (I6c6ef, b/484905061)
  • Добавлены встроенные изображения для примеров в KDoc для CheckboxButton, SplitCheckboxButton, CircularProgressIndicator, ConfirmationDialog, SuccessConfirmationDialog, FailureConfirmationDialog и curvedText. Теперь эти изображения будут показываться в документации на страницах Wear Compose Material 3 DAC, чтобы разработчики могли сразу понять, как выглядят эти компоненты и примеры. (Ie4662, b/484905061)
  • Fix AlertDialogScreenshotTest test (I9be58, b/508678506)
  • Добавлены встроенные изображения для примеров в KDoc для NonClickableCard, OpenOnPhoneDialog, VerticalPageIndicator, VerticalPagerScaffold и RadioButton. Теперь эти изображения будут показываться в документации на страницах Wear Compose Material 3 DAC, чтобы разработчики могли сразу понять, как выглядят эти компоненты и примеры. (I2aa2d, b/484905061)

Версия 1.7.0-alpha02

6 мая 2026 г.

Выход androidx.wear.compose:compose-*:1.7.0-alpha02. Версия 1.7.0-alpha02 содержит эти коммиты.

Исправление ошибок

  • Фиксированный размер GestureIndicator в AlertDialogs (I0c16e, b/504912009)
  • Изменены анкеры LeftRevealed/RightRevealed объекта SwipeToReveal для позиционирования с выходом за границы. (Id84ff, b/498681589)
  • Добавление описания статуса в Checkbox и Switch (Iba12e, b/485098874)
  • Исправлена визуальная ошибка в FadingExpandingLabel, из-за которой при уменьшении количества строк появлялся старый текст. (Ia40c9, b/503709020)
  • Добавление поддержки жестов одной рукой по умолчанию в Material3 AlertDialog (I5848e, b/479098589)
  • Удалена встроенная логика видимости в режиме управления одной рукой (I8c602, b/502903320).

Версия 1.7.0-alpha01

8 апреля 2026 г.

Выход androidx.wear.compose:compose-*:1.7.0-alpha01. Версия 1.7.0-alpha01 содержит эти коммиты.

Изменения в API

  • Добавлен новый API для жестов одной рукой, в котором можно регистрировать приоритетные обратные вызовы для основных действий и действий по закрытию. Система автоматически определяет наиболее подходящий экранный объект, чтобы жесты и их индикаторы срабатывали только для элементов, которые пользователь может видеть и с которыми может взаимодействовать. Добавьте Modifier.oneHandedGesture в composable-функцию, связанную с жестом (например, в кнопку), и используйте OneHandedGestureDefaults.GestureIndicator, чтобы сообщить пользователю, когда действие жеста доступно. Прокрутку и переход на страницу также можно активировать с помощью основного жеста. В обратных вызовах рекомендуется использовать OneHandedGestureDefaults.scrollDown и OneHandedGestureDefaults.scrollToNextPage. Параметры OneHandedGestureDefaults.ScrollGestureIndicator и OneHandedGestureDefaults.VerticalPageGestureIndicator предоставляются в качестве альтернативы параметрам ScrollIndicator и PageIndicator соответственно, чтобы временно показывать пользователю индикатор жеста. (Ic6324, b/479098447, b/485488443)
  • В TransformingLazyColumnState добавлен атрибут requestAnchorItem, а также атрибут TransformingLazyColumnAnchorType, чтобы разработчики могли точно управлять направлением развертывания элемента и привязкой макета. (I0c1e6, b/494301025)
  • Добавлен флаг isSwipeToRevealDualFlingThresholdEnabled, который включен по умолчанию, но может быть отключен, если исправления ошибок в поведении прокрутки в SwipeToReveal в этом выпуске вызывают регрессию (в этом случае как можно скорее сообщите об ошибке) (Ie6db6, b/497743775).

Исправление ошибок

  • Улучшена функция SwipeToReveal, которая теперь поддерживает быстрые жесты смахивания, позволяя пользователям полностью раскрывать действия независимо от расстояния смахивания (эту функцию можно отключить, выключив флаг isSwipeToRevealDualFlingThresholdEnabled). (I833fd, b/490728860)
  • Исправлена ошибка SwipeToReveal, из-за которой для полного перехода к следующему экрану требовалось провести пальцем по 75% ширины экрана (это изменение можно отключить, выключив флаг isSwipeToRevealDualFlingThresholdEnabled). (Id5604, b/490728860)
  • Добавлен второй виброотклик для SwipeToReveal, когда при проведении пальцем достигается состояние частичного раскрытия (это изменение можно отключить, выключив флаг isSwipeToRevealDualFlingThresholdEnabled). (Ic27e3, b/492273799)
  • Исправлена проблема в TransformingLazyColumn, из-за которой перестала работать анимация элементов (Modifier.animateItem). (I904ec, b/493167084)
  • Исправлена ошибка в PickerGroup (и, следовательно, в DatePicker), из-за которой несколько нажатий приводили к прокрутке в невыбранных столбцах инструмента выбора (Id76c5, b/378646798).

Wear Compose версии 1.6

Версия 1.6.2

19 мая 2026 г.

Выход androidx.wear.compose:compose-*:1.6.2. Версия 1.6.2 содержит эти коммиты.

Исправление ошибок

  • Исправлено рисование границ для объектов TransformingLazyColumn (I0c3c1, b/510772213)

  • Исправьте назначение itemSpacing в стратегии измерения отступов контента TransformingLazyColumn (I12d2f, b/498137919)

Версия 1.6.1

8 апреля 2026 г.

Выход androidx.wear.compose:compose-*:1.6.1. Версия 1.6.1 содержит эти коммиты.

Исправление ошибок

  • Исправлена проблема, из-за которой анимация объектов (с помощью Modifier.animateItem) перестала работать в TransformingLazyColumn. (I904ec, b/493167084)

Версия 1.6.0

25 марта 2026 г.

Выход androidx.wear.compose:compose-*:1.6.0. Версия 1.6.0 содержит эти коммиты.

Важные изменения с версии 1.5.0

  • Представлена библиотека Wear Compose Navigation3, которая интегрируется с компонентами NavDisplay и SceneStrategy библиотеки Navigation 3 и добавляет логику закрытия с помощью свайпа, характерную для Wear, используя новый компонент SwipeDismissableSceneStrategy.
  • Добавлена поддержка TransformingLazyColumn для reverseLayout, привязки с помощью TransformingLazyColumnDefaults.snapFlingBehavior и Modifier.minimumVerticalContentPadding, что позволяет задавать предпочтительные поля для элементов списка, когда они находятся вверху или внизу.
  • Добавлены новые перегрузки для AlertDialog, в которых используется TransformingLazyColumn для согласованности с прокруткой на других экранах Material3.
  • Улучшена отрисовка изогнутого текста, особенно рукописных шрифтов, благодаря добавлению искажения текста с помощью нового параметра CurvedTextStyle warpOffset, который включен по умолчанию для API 34 и более поздних версий.
  • Добавлен новый CompositionLocal LocalAmbientModeManager, который позволяет задавать разные интерфейсы и поведение для интерактивного и фонового режимов.
  • Более полный список функций, добавленных в версии 1.6.0, можно найти в примечаниях к выпуску beta01.

Версия 1.6.0-rc01

11 марта 2026 г.

Выход androidx.wear.compose:compose-*:1.6.0-rc01. Версия 1.6.0-rc01 содержит эти коммиты.

  • В этом выпуске версия Compose для Wear OS 1.6.0 стала релиз-кандидатом, но в остальном он не отличается от версии 1.6.0-beta01.

Версия 1.6.0-beta01

25 февраля 2026 г.

Выход androidx.wear.compose:compose-*:1.6.0-beta01. Версия 1.6.0-beta01 содержит эти коммиты.

Версия 1.6.0-beta01 библиотеки Compose для Wear OS означает, что в ней реализованы все функции и API заблокирован (за исключением экспериментальных функций). В Wear Compose 1.6.0-beta01 добавлены следующие новые функции:

  • Библиотека Wear Compose Navigation3, которая интегрируется с компонентами NavDisplay и SceneStrategy библиотеки Navigation 3 и добавляет логику закрытия с помощью свайпа, характерную для Wear OS, используя новый компонент SwipeDismissableSceneStrategy.
  • Добавлена поддержка TransformingLazyColumn для reverseLayout, привязки с помощью TransformingLazyColumnDefaults.snapFlingBehavior и Modifier.minimumVerticalContentPadding, что позволяет задавать предпочтительные поля для элементов списка, когда они находятся вверху или внизу.
  • Добавлены новые перегрузки для AlertDialog, в которых используется TransformingLazyColumn для согласованности с прокруткой на других экранах Material3.
  • Улучшена отрисовка изогнутого текста, особенно рукописных шрифтов, благодаря добавлению искажения текста с помощью нового параметра CurvedTextStyle warpOffset, который включен по умолчанию для API 34 и более поздних версий.
  • Добавлен новый CompositionLocal LocalAmbientModeManager, который позволяет задавать разные интерфейсы и поведение для интерактивного и фонового режимов.
  • В TimePicker добавлен новый тип MinutesSeconds и параметр initialSelection, позволяющий указать изначально выбранный компонент времени.
  • Новые перегрузки для карточек, позволяющие создавать некликабельные варианты, которые предназначены только для отображения и не реагируют на нажатия пользователей.
  • Добавлен параметр LocalRippleConfiguration, позволяющий управлять внешним видом эффекта пульсации.
  • Добавлен параметр snapSensitivity для RotaryScrollableDefaults.snapBehavior и PagerScaffoldDefaults. Теперь он включает рекомендуемые значения по умолчанию для SnapPositionalThreshold и HighSnapPositionalThreshold, которые можно использовать с PagerDefaults.snapFlingBehavior.

Изменения в API

  • Рекомендуемые значения по умолчанию для атрибута "отступ контента" Modifier.minimumVerticalContentPadding были переименованы с minimumListVerticalContentPadding на minimumVerticalListContentPadding, чтобы подчеркнуть, что отступ относится к списку. Также была обновлена связанная документация. (I496ca, b/426154225)
  • Теперь по умолчанию для изогнутого текста используется деформация, что улучшает его отображение, особенно для рукописных шрифтов. (I6979d, b/450526792, b/481617443)

Исправление ошибок

  • Исправьте взаимодействие между TLC animateItem и minimumVerticalContentPadding. (Ia865c, b/483663045)
  • Искажение смещения для изогнутого текста теперь по умолчанию включено только для API 34 и более поздних версий. Это связано с зависимостью от PathIterator из библиотеки androidx.graphics.path, которая недоступна для тестирования разработчиками в Robolectric до API 34 (из-за чего существующие тесты разработчиков не работают). (Ie5bae, b/484319336)
  • Улучшена работа с изогнутым текстом. (If2b34, b/483390353)
  • Обновление ConfirmationDialogDefaults.SuccessIcon: игнорируется направление макета справа налево, чтобы флажок не был перевернут. (Ic6add, b/481966029)

Версия 1.6.0-alpha10

11 февраля 2026 г.

Выход androidx.wear.compose:compose-*:1.6.0-alpha10. Версия 1.6.0-alpha10 содержит эти коммиты.

Изменения в API

  • Интерфейс ResponsiveVerticalPadding переименован Modifier.responsiveVerticalPadding в Modifier.minimumVerticalContentPadding, а параметры отступов теперь задаются в единицах dp. Рекомендуемые значения по умолчанию перенесены из ResponsiveVerticalPaddingDefaults в объекты по умолчанию для определенных компонентов, например ButtonDefaults, CardDefaults и т. д. (Icaab2, b/426154225)
  • Добавлен элемент управления WearComposeFoundationFlags.isTransformingLazyColumnClickableThresholdEnabled для новой функции, представленной в TransformingLazyColumn. Теперь клики, выходящие за пределы порога в 20 dp в верхней и нижней частях макета, игнорируются, чтобы предотвратить случайные нажатия, когда элемент виден лишь частично. Кроме того, мы изменили код так, чтобы перехватывались только клики по крайним элементам в событиях, которые находятся в пределах зоны касания, чтобы не игнорировать жесты перетаскивания. (I1ba28, b/480910891)
  • Теперь rememberAmbientModeManager использует LocalActivity, чтобы получить текущее действие, а не принимает его в качестве параметра (Idf114, b/473603258).
  • Изменено значение AmbientMode, чтобы оно не было исчерпывающим для расширяемости (I92cc3, b/473603258)
  • В rememberSwipeDismissableSceneStrategyState удален параметр swipeToDismissBoxState, поскольку он относится к реализации только до API 35 (I5907c, b/476105162).
  • [TLC] В TransformingLazyColumn добавлен параметр Modifier.responsiveVerticalPadding, позволяющий автоматически настраивать отступы в соответствии с рекомендациями по дизайну Material 3 для Wear OS. (Ia7e73, b/426154225)

Исправление ошибок

  • Изменено условие предварительной выборки TransformingLazyColumn, чтобы срочность рассчитывалась на основе границ области просмотра без отступов (I48d85, b/476420552).
  • Picker теперь поддерживает прозрачность настраиваемых фонов, например градиентов или изображений, передавая Color.Unspecified в качестве gradientColor инструмента выбора. В случае с TimePicker и DatePicker этого эффекта можно добиться, локально переопределив MaterialTheme.colorScheme.background на Color.Unspecified. (Icc476, b/458429791, b/458429791)
  • Для элементов TransformingLazyColumn, расположенных вверху и внизу экрана, введен порог кликабельности в 20 dp, чтобы предотвратить случайные нажатия, когда элементы почти скрыты. (I2c9cb, b/443285887)
  • Улучшена обработка функции "Меньше движения" в OpenOnPhoneDialog. (Ib1d12, b/48558283)

Версия 1.6.0-alpha09

28 января 2026 г.

Выход androidx.wear.compose:compose-*:1.6.0-alpha09. Версия 1.6.0-alpha09 содержит эти коммиты.

Изменения в API

  • Переименование PagerScaffoldDefaults.SnapPositionalThreshold в LowSnapPositionalThreshold и RotaryScrollableDefaults.SnapSensitivity в LowSnapSensitivity (I157ee, b/449949891)
  • Удален модификатор из SwipeDismissableSceneStrategy. (Iff30f, b/449949891)

Исправление ошибок

  • Исправлена задержка анимации прокрутки с помощью поворотного переключателя при использовании функции привязки (I7db89, b/474016470).
  • Исправлена ошибка, из-за которой система блокировки SwipeDismissableSceneStrategy возвращалась к API 36+ (Icf20b, b/476105162).
  • Исправлена ошибка, из-за которой анимация SwitchButton масштабировалась или исчезала как отдельная фигура (I7a7eb, b/378644361).
  • Улучшена анимация значка "Проверка" CheckboxButton (I89944, b/378646769)

Версия 1.6.0-alpha08

14 января 2026 г.

Выход androidx.wear.compose:compose-*:1.6.0-alpha08. Версия 1.6.0-alpha08 содержит эти коммиты.

Изменения в API

  • Параметр RotaryScrollableDefaults.snapBehavior теперь принимает параметр с плавающей запятой snapSensitivity, а параметр PagerScaffoldDefaults теперь делает общедоступными рекомендуемые значения по умолчанию SnapPositionalThreshold и HighSnapPositionalThreshold для использования с PagerDefaults.snapFlingBehavior. (I7e11c, b/449949891)
  • Добавлена поддержка привязки к TransformingLazyColumn для сенсорного и поворотного ввода. При настройке привязки рекомендуется указывать как flingBehavior с помощью TransformingLazyColumnDefaults.snapFlingBehavior, так и rotaryScrollableBehavior с помощью RotaryScrollableDefaults.snapBehavior, чтобы обеспечить единообразное взаимодействие с пользователем. (I5326f, b/422455104)
  • Добавлен новый компонент LocalAmbientModeManager, с помощью которого можно легко задавать различные элементы интерфейса и поведение для интерактивного и фонового режимов. (I00161, b/427724331)

Исправление ошибок

  • Исправлена проблема, из-за которой списки с поведением привязки к повороту не возвращались после прокрутки за пределы. (I05216, b/470317969)
  • Исправлена проблема с эффектом пульсации для кнопок увеличения и уменьшения в ползунке Material3. Теперь эффект волны правильно распространяется на всю ширину компонента ползунка. (I8c0c4, b/378658409)

Версия 1.6.0-alpha07

17 декабря 2025 г.

Выход androidx.wear.compose:compose-*:1.6.0-alpha07. Версия 1.6.0-alpha07 содержит эти коммиты.

Изменения в API

  • Добавлен объект библиотеки wear-compose:compose-navigation3 (I01b5c, b/427463127)
  • Добавлен SwipeDismissableSceneStrategy для интеграции Wear OS с Navigation3. Его можно использовать с NavDisplay для показа контента Wear Compose. (I7aa08, b/427463127)
  • Представляем ResponsiveTransformingLazyColumn – новый компонент Material3, созданный на основе TransformingLazyColumn из wear compose foundation. Он автоматически рассчитывает и применяет адаптивные вертикальные отступы в зависимости от типа контента списка. (I102f4, b/426154225)

Исправление ошибок

  • Исправлена проблема, из-за которой значок PageIndicator неправильно перерисовывался при изменении индекса текущей страницы в PagerState (например, при вызове scrollToPage() или использовании animateScrollToPage() с уменьшенным движением). (I97150, b/465669950)
  • Исправлена семантика TransformingLazyColumn и расчет scrollOffset (Idec30, b/417941554)
  • Исправлено SwipeToReveal отмены действия (I770f8, b/382259843)
  • Реализован PredictiveBackScene для обработки Navigation3 в API 36 и более поздних версий. (Idedf6, b/427463127)

Версия 1.6.0-alpha06

3 декабря 2025 г.

Выход androidx.wear.compose:compose-*:1.6.0-alpha06. Версия 1.6.0-alpha06 содержит эти коммиты.

Изменения в API

  • Добавлен параметр LocalRippleConfiguration, позволяющий управлять появлением эффекта ряби (I9e0fa, b/382336566).
  • Добавлены новые перегрузки для AlertDialog, в которых используется TransformingLazyColumn для расширенного управления анимацией прокрутки элементов. Улучшены макеты для больших экранов. (I862ff, b/438468382)
  • Добавлен параметр преобразования в ButtonGroup для использования с динамически изменяющимися контейнерами, например TransformingLazyColumn. (I8743b, b/453710565)

Исправление ошибок

  • Исправлена проблема с заголовком AlertDialog и кнопками подтверждения/отклонения, которые несколько раз появлялись в письме (I8e1b0, b/463955367).
  • Сделайте код TimeText более надежным при прослушивании изменений TimeZone. (I1c276, b/457909952)
  • Улучшена производительность функций SplitRadioButton и SplitCheckboxButton за счет уменьшения количества перекомпоновок. (I3ddc9, b/455845192)

Версия 1.6.0-alpha05

19 ноября 2025 г.

Выход androidx.wear.compose:compose-*:1.6.0-alpha05. Версия 1.6.0-alpha05 содержит эти коммиты.

Изменения в API

  • Добавлены значения RotarySnapSensitivity для поведения при повороте и PagerSensitivity для поведения при пролистывании, чтобы приложения могли настраивать чувствительность к этим действиям, особенно при использовании пейджеров. (Ic3a83, b/449949891)
  • Упрощенные изменения в rememberTransformingLazyColumnState, внесенные при добавлении обратной разметки для TransformingLazyColumn, объединение в одну функцию и использование контрольного значения для индекса якоря по умолчанию. (I09302, b/453731755)
  • Добавлен новый значок ошибки по умолчанию GenericFailureIcon, который будет использоваться в FailureConfirmationDialog. Существующий элемент FailureIcon переименован в ConnectionFailureIcon. (I8e965, b/453730430)

Исправление ошибок

  • Повышена надежность функции TimePicker при анализе сложных шаблонов локали. (I7b169, b/456538838)
  • Исправлена проблема с первоначальным макетом TransformingLazyColumn, когда verticalArrangement имеет значение Arrangement.Center. (Id18ef, b/451481233)
  • Конструктор TransformingLazyColumnState приведен в соответствие с функцией rememberTransformingLazyColumnState (I36d6a, b/453731755)
  • Изменен значок галочки для CheckboxButton. Теперь он имеет закругленные края. (Ie645e, b/378645751)
  • Изменен значок галочки для SwitchButton. Теперь он имеет закругленные края. (I31fbf, b/378642590)
  • Исправлено смещение scrollToItem в TransformingLazyColumn, из-за которого направление прокрутки было обратным. (Ib2c93, b/451481233)
  • Улучшена производительность SwitchButton и SplitSwitchButton. (I708de, b/448781327)

Версия 1.6.0-alpha04

22 октября 2025 г.

Выход androidx.wear.compose:compose-*:1.6.0-alpha04. Версия 1.6.0-alpha04 содержит эти коммиты.

Изменения в API

  • Реализация reverseLayout для TransformingLazyColumn (I19f9e, b/352513793)
  • Добавлен ConfirmationDialogDefaults.VariantFailureIcon для использования в FailureConfirmationDialog. В некоторых случаях этот значок может быть предпочтительнее, чем ConfirmationDialogDefaults.FailureIcon, который указывает на отсутствие подключения к телефону. (Ifc851, b/443115305)

Исправление ошибок

  • Повышена производительность выбора за счет рефакторинга использования LaunchedEffect. (I94519, b/418192973)
  • Исправлена ошибка в SwipeDismissableNavHost на API36+, из-за которой при нажатии кнопки "Назад" во время анимации подсказки для жеста "Назад" анимация прерывалась и запускалась заново. Теперь вместо Animatable используется SeakableTransitionState.animateTo, что немного повышает производительность. (I2241f, b/428156670)
  • Исправлена ошибка, из-за которой кнопка подтверждения в AlertDialog озвучивалась как "Кнопка". Confirm" вместо стандартного "Confirm". Кнопка. (Ic2381, b/429378202)
  • Улучшена видимость числа TimePicker на небольших экранах. (I68386, b/447625365)
  • Удалена ветка Lazy Layout из Wear Compose Foundation. Это означает, что TransformingLazyColumn теперь использует реализацию Lazy Layout из Compose Foundation, включая предварительную выборку, и в большинстве случаев обеспечивает более высокую производительность при отрисовке кадров. (Idd743, b/445911630)

Версия 1.6.0-alpha03

8 октября 2025 г.

Выход androidx.wear.compose:compose-*:1.6.0-alpha03. Версия 1.6.0-alpha03 содержит эти коммиты.

Изменения в API

  • В функцию TimePicker добавлен параметр, позволяющий указать, какой компонент времени будет выбран изначально. По умолчанию выбирается первый доступный компонент на основе региональных настроек и TimePickerType. (Ie5dfe, b/437015874)
  • Удален неиспользуемый параметр targetProgress в методе CircularProgressIndicator drawCircularProgressIndicator. (Ieeb3c, b/430544552)

Исправление ошибок

  • Добавлена поддержка TransformingLazyColumn verticalAlignment. Теперь поддерживаются стандартные варианты расположения: сверху, снизу или по центру. (I2e630, b/444143326)
  • Улучшен расчет ширины изогнутого текста с учетом пробелов до и после него (может привести к проблемам со скриншотами, на которых есть изогнутый текст, особенно если у него есть фон, например TimeText). (I924a4, b/446601899)
  • Обновлена библиотека Compose Foundation с версии WarpedCurvedTextRenderer до EmojiCompatInitializer (вместо androidx.emoji2), чтобы исправить ошибку класса времени выполнения. (I589b4, b/444422736)
  • Обновлено ScalingLazyColumn, чтобы оно фокусировалось на прокручиваемом узле с CollectionInfo. Теперь оно работает с поворотным переключателем в большем количестве контекстов, например на Material3 AlertDialog. (I6be3c, b/445332360)

Версия 1.6.0-alpha02

24 сентября 2025 г.

Выход androidx.wear.compose:compose-*:1.6.0-alpha02. Версия 1.6.0-alpha02 содержит эти коммиты.

Изменения в API

  • Улучшена визуализация изогнутого текста, особенно рукописных шрифтов, благодаря добавлению параметра CurvedTextStyle warpOffset, позволяющего искажать текст. (If5dcb)

Исправление ошибок

  • Оптимизированное кеширование анимации элементов при прокрутке в TransformingLazyColumn. (I62ae8)
  • Варианты OpenOnPhoneDialog и ConfirmationDialog были обновлены, чтобы задать FLAG_KEEP_SCREEN_ON, чтобы анимация выполнялась до конца, а диалоговые окна закрывались автоматически, как и предполагалось. (Iad7d4)
  • Исправлена ошибка, из-за которой Modifier.edgeSwipeToDismiss давал сбой при использовании с SwipeDismissableNavHost в API 36 и более поздних версий. (Ifc13d)
  • Обновлена документация и комментарии, связанные с новым параметром CurvedTextStyle warpOffset, чтобы правильно ссылаться на случай "Не указано". (I41aa5)

Версия 1.6.0-alpha01

10 сентября 2025 г.

Выход androidx.wear.compose:compose-*:1.6.0-alpha01. Версия 1.6.0-alpha01 содержит эти коммиты.

Изменения в API

  • Добавлены варианты без возможности клика для Card, TitleCard, OutlinedCard и AppCard (I509bb, b/406690146)
  • Из новых API для некликабельных карточек удален параметр interactionSource. (If0c7a, b/440323280)
  • В компонент TimePicker добавлен новый тип MinutesSeconds, который отображает только столбцы минут и секунд, исключая столбец часов (Ia9e94, b/438004664).

Исправление ошибок

  • Исправьте использование параметра модификатора атрибута HorizontalPagerScaffold, чтобы при добавлении атрибута Modifier.fillMaxSize() (I07ae1, b/441682601) атрибут HorizontalPager не терял индикатор страницы.
  • По умолчанию направление ScrollIndicator должно совпадать с направлением макета контента. (I0da0f, b/441489028)
  • Исправлена проблема с ScrollAway при использовании с TransformingLazyColumn. TimeText не прокручивался должным образом после перехода на другой экран и возврата. (Ic0ef1, b/433549148)
  • Исправлено TransformingLazyColumn представление семантики SCROLL_BACKWARDS и SCROLL_FORWARDS для крайних случаев в верхней и нижней частях экрана. (I5c28d, b/405205994)
  • Исправлена ошибка в SwipeDismissableNavHost, из-за которой переходы, находящиеся в процессе, не отмечались как завершенные после возврата на API 36. (Ife72e, b/441089689)
  • Измените значение по умолчанию OpenOnPhoneMaxSweepAngle на 200 градусов, чтобы избежать обрезки некоторых переводов фразы "Проверьте телефон". (Ib2e4c, b/428243902)

Wear Compose версии 1.5

Версия 1.5.6

3 декабря 2025 г.

Выход androidx.wear.compose:compose-*:1.5.6. Версия 1.5.6 содержит эти коммиты.

Исправление ошибок

  • Оптимизация кеширования анимации элементов при прокрутке в TransformingLazyColumn. (I62ae8, b/441701460)
  • Варианты OpenOnPhoneDialog и ConfirmationDialog были обновлены, чтобы задать FLAG_KEEP_SCREEN_ON, чтобы анимация выполнялась до конца, а диалоговые окна закрывались автоматически, как и предполагалось. (Iad7d4, b/437986990)
  • Исправлена ошибка, из-за которой Modifier.edgeSwipeToDismiss давал сбой при использовании с SwipeDismissableNavHost в API 36 и более поздних версий. (Ifc13d, b/441901722)

Версия 1.5.5

5 ноября 2025 г.

Выход androidx.wear.compose:compose-*:1.5.5. Версия 1.5.5 содержит эти коммиты.

Исправление ошибок

  • Улучшена видимость номера TimePicker на небольших экранах (I70fbe)

Версия 1.5.4

22 октября 2025 г.

Выход androidx.wear.compose:compose-*:1.5.4. Версия 1.5.4 содержит эти коммиты.

Исправление ошибок

  • Повышена производительность выбора за счет рефакторинга использования LaunchedEffect. (I94519, b/418192973)
  • Исправлена ошибка в SwipeDismissableNavHost на API36+, из-за которой при нажатии кнопки "Назад" во время анимации подсказки для жеста "Назад" анимация прерывалась и запускалась заново. Теперь вместо Animatable используется SeakableTransitionState.animateTo, что немного повышает производительность. (I2241f, b/428156670)
  • Исправлена ошибка, из-за которой кнопка подтверждения в AlertDialog озвучивалась как "Кнопка". Confirm" вместо стандартного "Confirm". Кнопка. (Ic2381, b/429378202)

Версия 1.5.3

8 октября 2025 г.

Выход androidx.wear.compose:compose-*:1.5.3. Версия 1.5.3 содержит эти коммиты.

Исправление ошибок

  • Добавлена поддержка TransformingLazyColumn verticalAlignment. Теперь поддерживаются стандартные варианты расположения: сверху, снизу или по центру. (I2e630, b/444143326)

Версия 1.5.2

24 сентября 2025 г.

Выход androidx.wear.compose:compose-*:1.5.2. Версия 1.5.2 содержит эти коммиты.

Исправление ошибок

  • Оптимизированное кеширование анимации элементов при прокрутке в TransformingLazyColumn. (I62ae8)
  • В вариантах OpenOnPhoneDialog и ConfirmationDialog теперь задан флаг FLAG_KEEP_SCREEN_ON, чтобы анимация воспроизводилась до конца, а диалоговые окна закрывались автоматически. (Iad7d4)
  • Исправлена ошибка, из-за которой Modifier.edgeSwipeToDismiss давал сбой при использовании с SwipeDismissableNavHost в API 36 и более поздних версий. (Ifc13d)
  • Обновлена документация и комментарии, связанные с новым параметром CurvedTextStyle warpOffset, чтобы правильно ссылаться на случай "Не указано". (I41aa5)

Версия 1.5.1

10 сентября 2025 г.

Выход androidx.wear.compose:compose-*:1.5.1. Версия 1.5.1 содержит эти коммиты.

Исправление ошибок

  • Исправлена ошибка HorizontalPagerScaffold, из-за которой при добавлении Modifier.fillMaxSize() (I07ae1, b/441682601) индикатор страницы исчезал из HorizontalPager.
  • По умолчанию направление ScrollIndicator должно совпадать с направлением макета контента. (I0da0f, b/441489028)
  • Исправлена проблема с ScrollAway при использовании с TransformingLazyColumn. TimeText не прокручивался должным образом после перехода на другой экран и возврата. (Ic0ef1, b/433549148)
  • Исправлено TransformingLazyColumn представление семантики SCROLL_BACKWARDS и SCROLL_FORWARDS для крайних случаев в верхней и нижней частях экрана. (I5c28d, b/405205994)
  • Исправлена ошибка в SwipeDismissableNavHost, из-за которой переходы, находящиеся в процессе, не отмечались как завершенные после возврата на API 36. (Ife72e, b/441089689)
  • Измените значение по умолчанию OpenOnPhoneMaxSweepAngle на 200 градусов, чтобы избежать обрезки некоторых переводов фразы "Проверьте телефон". (Ib2e4c, b/428243902)

Версия 1.5.0

27 августа 2025 года

Выход androidx.wear.compose:compose-*:1.5.0. Версия 1.5.0 содержит эти коммиты.

Важные изменения с версии 1.4.0

Первый выпуск библиотеки Wear Compose Material 3, поддерживающей новую систему дизайна Material 3 Expressive. Новое в этом выпуске:

  • Обновлены MaterialTheme и темы с динамическими цветами.
  • Новые компоненты AppScaffold, ScreenScaffold, HorizontalPagerScaffold и VerticalPagerScaffold для создания структуры экрана и координации анимаций ScrollIndicator, TimeText, HorizontalPageIndicator и VerticalPageIndicator.
  • Преобразование фигур IconButton, TextButton, IconToggleButton и TextToggleButton с вариантами, которые анимируются при нажатии или выборе.
  • EdgeButton, у которого особая форма, предназначенная для нижней части экрана.
  • ButtonGroup – это группа кнопок, расположенных в ряд, который меняет форму при прикосновении.
  • AlertDialog и ConfirmationDialog с вариантами для дополнительного контента диалогового окна.
  • компонентов TimePicker и DatePicker.
  • Индикаторы выполнения включают CircularProgressIndicator (с сегментированной вариацией), ArcProgressIndicator и LinearProgressIndicator.

Кроме того, Wear Compose Foundation 1.5.0 включает следующие изменения:

  • TransformingLazyColumn – это список с вертикальной прокруткой, который поддерживает масштабирование и анимацию.
  • Поддержка разбивки на страницы в Wear Compose Foundation с помощью HorizontalPager и VerticalPager.
  • Иерархические группы фокуса используются для аннотирования композиций в приложении, чтобы отслеживать активную часть композиции и координировать фокус.

Подробнее о выразительном дизайне Material 3 для Wear OS…

Дополнительные изменения

Версия 1.5.0-rc02

13 августа 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-rc02. Версия 1.5.0-rc02 содержит эти коммиты.

Исправление ошибок

  • Исправлена ошибка в TimePicker, из-за которой длинные строки с символами разных языков для обозначения времени суток (до полудня/после полудня) могли нарушать макет. (I0fa81)

Версия 1.5.0-rc01

30 июля 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-rc01. Версия 1.5.0-rc01 содержит эти коммиты.

Исправление ошибок

  • TimePicker теперь полностью зависит от региона пользователя. Чтобы определить порядок и содержание селекторов и разделителей, используется DateFormat.getBestDateTimePattern. Исправлен неправильный порядок столбцов для языков CJK, устранены проблемы с макетом RTL для таких языков, как арабский, используются локализованные разделители и поддерживаются форматы времени 0–11 и 1–12 в зависимости от региона (I5d543).
  • В некоторых регионах, например в Китае, Японии и Корее, в формате DatePicker теперь используется числовое обозначение месяца, чтобы избежать сочетания числового и языкового форматов (например, 2025 | 07 | 02 вместо 2025 | 7月 | 02). Это изменение касается эвристического алгоритма, который проверяет, используются ли в региональных настройках суффиксы для обозначения года. Если используются, то формат месяца меняется с текстового (MMM) на числовой (MM) для согласованности. (Ia93fe)
  • Вертикальное пространство для заголовка в компоненте Picker теперь постоянное, что предотвращает видимый сдвиг при выборе столбца, особенно в режиме Talkback. (I7f8b7)
  • Исправлена ошибка специальных возможностей, вызванная тем, что символы HorizontalPageIndicator и VerticalPageIndicator отображались на весь экран. Индикаторы страниц больше не будут занимать весь экран и будут автоматически размещаться при использовании с HorizontalPagerScaffold или VerticalPagerScaffold. Если вы не используете каркас пейджера, укажите выравнивание явно, используя modifier = Modifier.align(Alignment.BottomCenter) с HorizontalPageIndicator и modifier =Modifier.align(Alignment.CenterEnd) с VerticalPageIndicator. (I3a0ad)
  • Направление пролистывания в SwipeToReveal теперь одинаково для языков с письмом слева направо (LTR) и справа налево (RTL) LayoutDirections. (I6d427)
  • Восстановлено вертикальное центрирование SwipeToReveal для действий. Если имеет значение hasPartiallyRevealedState = true, то при прокрутке вызывающий объект должен сбросить значение RevealState до RevealValue.Covered. (I6473d)
  • SwipeDismissableNavHost теперь правильно обрезает контент для API 36 и более поздних версий. (Ib9a44)

Версия 1.5.0-beta06

16 июля 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-beta06. Версия 1.5.0-beta06 содержит эти коммиты.

Исправление ошибок

  • Исправь анимацию EdgeButton, когда у LazyColumn или ScalingLazyColumn есть reverseLayout = true. (I46a1a)
  • Исправлена ошибка в ScreenScaffold, из-за которой функция "Изучение касанием" не работала в TalkBack, если был указан элемент ScrollIndicator/PageIndicator. (I6dcee)
  • TransformingLazyColumn теперь позволяет выполнять пользовательское преобразование из TransformationSpec, считывая значение itemHeight, предоставленное TransformationSpec в фоновом рисовальщике. (I6a599)
  • Анимированные переходы между цветами при включении и отключении для IconButton, чтобы обеспечить единообразие с IconToggleButton. (Ife10a)
  • В версии CircularProgressIndicator удалено ограничение на минимальный размер секции, чтобы при анимации не было заметного перехода к минимальному размеру точки. В связи с этим изменением параметр targetProgress в drawCircularProgressIndicator больше не используется. (I33309)
  • У селектора теперь есть семантическая роль ValuePicker, которую могут использовать программы чтения с экрана, чтобы сделать селекторы более доступными. В виджете также обновлены ярлыки для специальных возможностей, которые позволяют различать корректировку значения в режиме только для чтения и выбор текущего значения в других случаях. (I33309)

Версия 1.5.0-beta05

2 июля 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-beta05. Версия 1.5.0-beta05 содержит эти коммиты.

Исправление ошибок

  • В документацию внесены уточнения по использованию параметра Modifier.edgeSwipeToDismiss (I78cb5).
  • Исправлена ошибка, из-за которой в списках с отложенной загрузкой (lazy lists) с помощью SwipeToReveal могли показываться несколько раскрытых элементов (I1d4f6).
  • Формы контейнеров в TransformingLazyColumn теперь масштабируются, чтобы избежать обрезки содержимого. (I9221a)
  • Ярлыки TimePicker и DatePicker для часов, минут, секунд, лет, месяцев и дней теперь имеют семантику заголовков для программ чтения с экрана (I77d8b).
  • Удалена пауза между циклами в неопределенном CircularProgressIndicator (Iaf0bb).
  • Исправлена ошибка анимации в TransformingLazyColumn при удалении объектов. (I73034)
  • Исправлена обработка закрепленных объектов в TransformingLazyColumn при удалении объектов. (I841a8)
  • PickerGroup Теперь при включенном автоцентрировании и изменении выбранного (центрированного) элемента выбора элементы выбора анимируются по горизонтали. (Ic82c4)

Версия 1.5.0-beta04

18 июня 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-beta04. Версия 1.5.0-beta04 содержит эти коммиты.

Исправление ошибок

  • Исправлена ошибка макета в TransformingLazyColumn, из-за которой контент, помещающийся на экране, теперь правильно выравнивается по верхнему краю экрана (I80115).
  • Устранена проблема с TransformingLazyColumn, из-за которой нижний элемент неправильно масштабировался при прокрутке до самого конца списка с EdgeButton. При восстановлении макета прогресс прокрутки теперь следует градиентному спуску. (Iea375)
  • TransformingLazyColumn теперь считывает высоту элемента внутри фонового отрисовщика, что позволяет пользовательским TransformationSpecs реализовывать морфинг. (I022f0)
  • SwipeToReveal теперь правильно выравнивает по вертикали раскрытые действия. (I4419b)
  • Исправлена ошибка в SwipeToReveal, из-за которой функция "Провести, чтобы закрыть" работала некорректно, если на экране использовались как представления, так и режим создания. (I5dc0e)
  • Исправлена ошибка, из-за которой при прокрутке действия SwipeToReveal отображались со смещением по вертикали. (I29444)
  • AlertDialog, ConfirmationDialog, OpenOnPhoneDialog и SwipeToReveal теперь округляют отступы и размеры, которые рассчитываются как процент от размера экрана. (I76367)
  • ButtonDefaults.outlinedButtonBorder теперь обновляется после изменения состояния (включено/отключено) size(If2ddd)
  • Исправлена ошибка, связанная с высотой EdgeButton, которая возникала на сложных экранах с элементами Pager и ScreenScaffold. (I946e3)
  • Устранено состояние гонки, из-за которого могли останавливаться анимации заполнителей. (I53530)
  • Повышена производительность HorizontalPageIndicator и VerticalPageIndicator за счет рисования на холсте. (Ifae1e)
  • Улучшена форма кнопки EdgeButton, чтобы сделать переход между многоточием и кругами, составляющими контур, более плавным. (I7721e)
  • Исправлена ошибка в LevelIndicator, из-за которой анимация останавливалась из-за ненужных перекомпоновок. (I45d08)

Версия 1.5.0-beta03

4 июня 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-beta03. Версия 1.5.0-beta03 содержит эти коммиты.

Изменения в API

  • Теперь при использовании TalkBack OpenOnPhoneDialog озвучивает только текст сообщения, а не семантику значка. В OpenOnPhoneDialogDefaults были внесены изменения: из icon() удалены параметр contentDescription и функция iconContentDescription. Кроме того, в ConfirmationDialogDefaults теперь есть параметры модификатора для композиций SuccessIcon и FailureIcon. (Id2ae2)

Исправление ошибок

  • Изменен порядок применения эффекта параметров SurfaceTransformation. Раньше преобразования, применяемые к компонентам Wear Material3, выполнялись в следующем порядке: отрисовка фона, преобразование контейнера, преобразование контента. Теперь первые два значения инвертированы, и мы применяем к ним любой переданный модификатор, поэтому они зависят от преобразований контейнера. Это позволяет устранить такие проблемы, как использование эффекта мерцания плейсхолдера с элементами в TLC с помощью параметра преобразования. (I786cf)
  • RevealState.Saver был добавлен для восстановления состояния SwipeToReveal при воссоздании операции или процесса. Теперь функция rememberRevealState по умолчанию использует этот режим. (Ie0ecb)
  • Кнопки SwipeToReveal основных и дополнительных действий должны по умолчанию иметь значение ButtonDefault.Height (исправлена ошибка, из-за которой для более высоких кнопок использовалась максимальная высота). (Ibfba1)
  • Изменено значение SwipeToReveal, чтобы сбрасывать последний компонент, с которым взаимодействовал пользователь, при выполнении жеста пролистывания вправо. (Ia8450)
  • Значение SwipeToReveal было изменено на Revealing, когда конечная позиция свайпа находится между раскрывающим и раскрытым якорями и ближе к раскрывающему якорю. (If4458)
  • Теперь контент ButtonGroup правильно отображается в интерфейсах с письмом справа налево (Ib378d).
  • AnimatedText теперь поддерживает текст с направлением письма справа налево (I4533c)
  • TransformingLazyColumn теперь правильно изменяет размер объектов при удалении нижнего объекта (Idacab).
  • TransformingLazyColumn теперь выполняет только один проход измерения, что повышает производительность за счет сокращения времени кадра. (I501a1)

Версия 1.5.0-beta02

20 мая 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-beta02. Версия 1.5.0-beta02 содержит эти коммиты.

Исправление ошибок

  • Обновлены базовые профили для библиотек foundation, material и material3. (I53f06)
  • Исправлена ошибка в TransformingLazyColumn, из-за которой размер объектов менялся при удалении нижнего объекта. (Idacab)
  • Исправлена ошибка в приложении TransformingLazyColumn, из-за которой список застревал вверху или внизу. (I49d00)
  • OpenOnPhoneDialog в TalkBack должен озвучивать изогнутый текст, а не описание значка. (I4efe8)
  • Исправлена ошибка в SwipeToReveal, из-за которой при значении false для hasPartiallyRevealedState в RevealState.currentValue указывался неправильный якорь. (I9c7cf)
  • Кнопки отмены SwipeToReveal теперь по умолчанию имеют вид ButtonDefaults.Height. (I1f6c8)
  • BasicSwipeToDismissBox. Повышена производительность за счет отказа от использования Canvas для рисования затемняющих экранов. (I68f2c)
  • Исправлена ошибка доступности в ползунке, из-за которой объявленный процент не соответствовал значению после обновления (I91146).
  • Исправлена ошибка при реализации placeholderShimmer. (Iee39b
  • TransformingLazyColumn – улучшена эффективность за счет оптимизации расчета ScrollProgress на 30%. (I4c4cb)

Версия 1.5.0-beta01

7 мая 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-beta01. Версия 1.5.0-beta01 содержит эти коммиты.

Версия 1.5.0-beta01 библиотеки Compose для Wear OS означает, что в ней реализованы все функции и API заблокирован (за исключением экспериментальных функций).

В Wear Compose 1.5.0-beta01 входит библиотека Wear Compose Material3, которая поддерживает новую систему дизайна интерфейса Material 3 Expressive. Мы рекомендуем перейти с Material на Material3, чтобы использовать новый визуальный дизайн в приложениях и воспользоваться преимуществами новых компонентов:

  • MaterialTheme – обновленные и расширенные цветовые схемы, типографика и формы, которые помогут сделать дизайн более глубоким и разнообразным.
  • Динамическая цветовая тема, которая автоматически создает цветовую схему для приложения в соответствии с цветами циферблата.
  • Новые компоненты по умолчанию автоматически адаптируются к большим экранам
  • Преобразование формы. Компоненты круглых кнопок, такие как IconButton, TextButton, IconToggleButton и TextToggleButton, поддерживают варианты, которые анимируются при нажатии или выборе.
  • EdgeButton – новая кнопка, расположенная внизу экрана.
  • Каркасы – компоненты AppScaffold и ScreenScaffold, которые позволяют задать структуру экрана и координировать анимацию ScrollIndicator и TimeText.
  • Кнопки. Поддерживаются многочисленные кнопки в форме стадиона с гибкими однослотовыми контейнерами и многослотовыми вариантами для кнопок со значками и ярлыками. CheckboxButton и SwitchButton используются, когда нужны кнопки-переключатели, а RadioButton – это кнопка выбора (также доступны варианты кнопок-переключателей и выбора с разделением).
  • ButtonGroup – реализует выразительную группу кнопок в строке, которые меняют форму при нажатии.
  • Варианты AlertDialog поддерживают кнопки "ОК" и "Отмена" или EdgeButton.
  • ConfirmationDialog позволяет показывать сообщения с тайм-аутом, а также специальные анимации для успешного или неудачного выполнения действия и открытия на телефоне.
  • Поддерживаются варианты TimePicker и DatePicker, а также компоненты Picker и PickerGroup для создания собственных экранов выбора.
  • ProgressIndicators – поддерживаются круговые и линейные индикаторы выполнения (CircularProgressIndicator имеет сегментированные и неопределенные варианты).
  • Карточки. Доступно несколько вариантов карточек, в том числе TitleCard, который предлагает специальные макеты для карточек с заголовком, временем, подзаголовком или контентом. TitleCard также может иметь фоновое изображение, чтобы подчеркнуть смысл информации на карточке.
  • Компоненты HorizontalPagerScaffold, VerticalPagerScaffold и AnimatedPage координируют анимации HorizontalPageIndicator и VerticalPagerIndicator. HorizontalPager и VerticalPager выпущены в библиотеке Wear Compose Foundation.
  • Заполнители – рисует каркас компонента, если нет предварительного контента.
  • Ползунки и счетчики позволяют пользователям выбирать значения из диапазона. Ползунки более компактны и могут быть разделены на сегменты, а пошаговый элемент занимает весь экран и обычно используется вместе с StepperLevelIndicator.
  • SwipeToReveal – используется для добавления дополнительных действий в composable-функцию, когда пользователь проводит по ней пальцем слева направо.

Кроме того, в Wear Compose Foundation 1.5.0-beta01 добавлены следующие новые компоненты:

  • TransformingLazyColumn – ленивый список с вертикальной прокруткой, поддерживающий масштабирование и анимацию трансформации.
  • Иерархические группы фокуса используются для аннотирования композиций в приложении, чтобы отслеживать активную часть композиции и координировать фокус.
  • Компоненты Pagers – HorizontalPager и VerticalPager, созданные на основе компонентов Compose Foundation с улучшениями для Wear OS, которые повышают производительность и соответствие рекомендациям Wear OS.

Изменения в API

  • Обновлен API иерархического фокуса: параметр Modifier.hierarchicalFocus переименован в Modifier.hierarchicalFocusGroup, а параметр обратного вызова удален; удалена перегрузка Modifier.hierarchicalFocusRequester с параметром FocusRequester; созданы новые параметры CompositionLocal и LocalScreenIsActive, чтобы компоненты могли сообщать и проверять, какой экран активен. (I5ff7c).
  • Устаревший SwipeToReveal из Wear Compose Foundation заменен на API SwipeToReveal в Wear Compose Material и Wear Compose Material3. Чтобы продолжить использовать API, замените импорт Wear Foundation SwipeToReveal на импорт Wear Compose Material или Wear Compose Material3. (Ia147d).
  • Зависимости Wear Compose Material3 SwipeToReveal от Foundation были перенесены в пакет material3, например RevealValue, RevealDirection, RevealActionType, RevealState, rememberRevealState. Разработчикам следует изменить импорт этих классов и функций с androidx.wear.compose.foundation на androidx.wear.compose.material3. (I640e6).
  • Мы обновили API Wear Compose Material3 SwipeToReveal следующим образом: добавили параметры primaryAction, onFullSwipe, secondaryAction, undoPrimaryAction, undoSecondaryAction и hasPartiallyRevealedState в composable-функцию SwipeToReveal; удалили возможность настраивать positionalThreshold и animationSpec из RevealState; удалили lastActionType, revealThreshold и ширину из RevealState; изменили конструктор RevealState, чтобы он принимал RevealDirection вместо якорей; удалили функции createRevealAnchors, якоря и bidirectionalAnchors; функции SwipeToRevealScope primaryAction, secondaryAction, undoPrimaryAction и undoSecondaryAction были переименованы в PrimaryActionButton, SecondaryActionButton, UndoActionButton и преобразованы в composable-функции; пометили RevealActionType как внутреннюю. (I885d0).
  • В API SwipeToReveal внесены следующие изменения: onFullSwipe переименован в onSwipePrimaryAction; SwipeToRevealNonAnchoredSample переименован, чтобы указать на использование параметра hasPartiallyRevealedState; actionButtonHeight удален, поскольку по умолчанию используется высота кнопки, а более высокую кнопку можно задать с помощью модификатора; SmallActionButtonHeight удален из SwipeToRevealDefaults; параметр value в конструкторах RevealValue и RevealDirection сделан частным. (I465ce).

Исправление ошибок

  • Исправлена обработка ScreenScaffold EdgeButton, чтобы после удаления элемента TransformingLazyColumn EdgeButton анимировался на место. (I6d366).
  • Зависимости Wear Compose от библиотек Compose обновлены до версии 1.8.0. (I2ef3f).
  • Изменено движение неопределенного индикатора CircularProgressIndicator, чтобы он больше не возвращался назад. (Ieddb1).
  • Исправлена SwipeDismissableNavHostошибка: фокус переключался неправильно после возврата назад, из-за чего не работало управление с помощью поворотного переключателя (для API 36 и более поздних версий, в которых используется прогнозируемый возврат). (Ieddb1).
  • Измененная документация по Hierarchical Focus API (Idf2ff).
  • В документацию по кнопкам и карточкам добавлена информация о том, как параметры containerPainter и disabledContainerPainter переопределяют параметры containerColor и disabledContainerColor (I4a453).
  • В предыдущей версии мы перенесли BroadcastReceiver в рабочий поток, но это вызвало проблемы в приложениях, которые управляют собственными потоками во время навигации. Поэтому мы вернули TimeText к прежнему состоянию. (I34d02).
  • В примерах Picker удалены ненужные вызовы remember. Вместо этого в Picker используется rememberUpdatedState, чтобы запомнить последнюю лямбда-функцию contentDescription. (Icb5b1).
  • Обновлены стили текста в TimePicker и DatePicker, чтобы при изменении шрифта текст не обрезался. (I26194).
  • Теперь по умолчанию для ListHeader используется выравнивание по центру, а для ListSubHeader – по началу строки. (I78339).
  • Обновлены примеры и демонстрации Foundation и Material Swipe to Reveal, чтобы объявлять специальные действия для людей с ограниченными возможностями (специальные действия должны быть добавлены как семантика в контент, а не в сам компонент SwipeToReveal). (Ie92a3).
  • Обновлено значение по умолчанию для параметра MaxLines, заданного для контента EdgeButton, в зависимости от его размера: 1 для очень маленького, 2 для маленького и среднего, 3 для большого. (Ie35f6).
  • Упрощенный LocalReduceMotion, чтобы наблюдатель регистрировался только один раз, что повышает производительность. (Ib1979).
  • Уменьшено количество перерисовок в ScrollIndicator для повышения производительности. (Ia7a67).
  • Исправлена ошибка в TransformingLazyColumn, из-за которой верхний видимый элемент в списке масштабировался неправильно, когда кнопка EdgeButton достигала полной высоты. (I30580).

Версия 1.5.0-alpha14

23 апреля 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha14. Версия 1.5.0-alpha14 содержит эти коммиты.

Изменения в API

  • Все зависимости Material SwipeToReveal от Foundation SwipeToReveal были перенесены в пакет Material, например RevealValue, RevealDirection, RevealActionType, RevealState, rememberRevealState. Разработчикам следует изменить импорт этих классов и функций с androidx.wear.compose.foundation на androidx.wear.compose.material. (Ib7cb8)
  • Обновлен API HierarchicalFocusCoordinator: теперь вместо композиций используются модификаторы.
  • Примечания к переносу:
    • HierarchicalFocusCoordinator(function, content) можно заменить, добавив Modifier.hierarchicalFocus(function()) в content или в окружающий компонуемый элемент.
    • ActiveFocusListener { if (it) focusRequester.requestFocus() } можно заменить, добавив Modifier.hierarchicalFocusRequester(focusRequester).
    • В других редких случаях использования ActiveFocusListener можно использовать новый параметр в Modifier.hierarchicalFocus.
    • Функцию focusRequester(rememberActiveFocusRequester()) можно заменить на hierarchicalFocusRequester().
    • Функцию val focusRequester = rememberActiveFocusRequester() можно заменить на remember { FocusRequester() } и добавить Modifier.hierarchicalFocusRequester(focusRequester). (Ie319a)

Исправление ошибок

  • Порог скорости, который должен быть превышен при жестах пролистывания для изменения состояния, был увеличен для следующих компонентов: SwipeToReveal, BasicSwipeToDismissBox и SwipeDismissableNavHost (только для API 35 и ниже для SwipeDismissableNavHost). (If47bf)
  • Исправлена проблема с анимацией при добавлении новых объектов в TransformingLazyColumn. (I589b2)

Версия 1.5.0-alpha13

9 апреля 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha13. Версия 1.5.0-alpha13 содержит эти коммиты.

Изменения в API

  • Для проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздней версии (Idb6b5).
  • В PagerState добавлено свойство targetPage (I4de8b).

Исправление ошибок

  • Предотвращение ненужной рекомпозиции при использовании предпросмотра для жеста "Назад". (Iecd6d)
  • Исправлено свойство isScrollable объекта ScrollInfoProvider, чтобы возвращать текущее значение. (Icbfb8)

Версия 1.5.0-alpha12

26 марта 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha12. Версия 1.5.0-alpha12 содержит эти коммиты.

Изменения в API

  • Улучшить реализацию gestureInclusion по умолчанию в SwipeToReveal, чтобы жесты игнорировались только в том случае, если компонент находится в состоянии Covered (Закрыт). (I7e3d6)
  • В SwipeToReveal параметр bidirectionalGestureInclusion теперь является значением, а не функцией. В параметр edgeZoneFraction в gestureInclusion добавлен параметр @FloatRange. (Ica7c3)

Исправление ошибок

  • Измените SwipeToReveal bidirectionalGestureInclusion, чтобы возвращать объект, а не класс. (I29597)
  • Отключено использование тактильной обратной связи при выполнении тестов в RoboElectric. (I58bd1)
  • Измените SwipeToReveal поля между контентом и кнопками действий, а также между значком и текстом кнопок действий. (Ic46cb)

Версия 1.5.0-alpha11

12 марта 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha11. Версия 1.5.0-alpha11 содержит эти коммиты.

Изменения в API

  • Обновлен PagerState: удален класс Compose Foundation PagerState в качестве базового и добавлены свойства currentPage, currentPageOffsetFraction и pageCount. Обновлен интерфейс GestureInclusion. Метод переименован в ignoreGestureStart. (I4ae07)
  • Добавьте requireOffset в SwipeToDismissBoxState как рекомендуемый способ получения смещения SwipeToDismissBoxState. (I21042)
  • Добавлен тег CurvedModifier.semantics, который изначально поддерживает описание контента и индекс перехода (I0b093).
  • Мы добавили CurvedModifier.clearAndSetSemantics, чтобы можно было отключить изогнутую семантику. CurvedText по-прежнему по умолчанию описывает контент текстом, но timeTextCurvedText и timeTextSeparator теперь не озвучивают свое содержимое. (I4b568)
  • Обработка жестов пролистывания по умолчанию в HorizontalPager переименована в PagerDefaults.gestureInclusion. Теперь по умолчанию игнорируются только жесты пролистывания, которые начинаются на левом краю первой страницы, и только если TalkBack отключен. В остальных случаях жесты пролистывания не будут игнорироваться пейджером, поэтому они будут доступны для обработчиков жестов пролистывания для закрытия. (Iee486)
  • Добавлена поддержка прокрутки с помощью жеста вращения для API rotaryScrollable. В поведение прокрутки rotaryScrollable добавлены перепрокрутка и вложенная прокрутка. Это изменение позволит привести к единому стандарту функциональность прокрутки с помощью сенсорного экрана и колесика прокрутки, в том числе при прокрутке за пределы экрана и вложенной прокрутке. (I71926)
  • Добавлена поддержка зоны для проведения пальцем от края экрана в SwipeToReveal. Теперь по умолчанию в Foundation SwipeToReveal запрещено пролистывание, если жест начинается с края экрана. По умолчанию Material3 SwipeToReveal запрещает пролистывание, если жест начинается с края экрана и для SwipeDirection задано одно направление. (I32ef0)
  • Теперь по умолчанию в TLC используется пустой параметр contentPadding, а не центрирование первого и последнего элементов. (I77ab7)

Исправление ошибок

  • Библиотеки Wear Compose обновлены до компилятора Kotlin 2.0. (I2de79)
  • Исправлена ошибка с изогнутым образцом LetterSpacing на основе. (Iebf7c)

Версия 1.5.0-alpha10

26 февраля 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha10. Версия 1.5.0-alpha10 содержит эти коммиты.

Изменения в API

  • Сделайте SwipeToRevealDefaults общедоступным. (I0c34c)
  • Мы заменили параметр swipeToDismissEdgeZoneFraction в HorizontalPager. Вместо него был добавлен новый параметр gestureInclusion, который позволяет реализовать нужный алгоритм закрытия с помощью пролистывания. gestureInclusion принимает экземпляр GestureInclusion, который определяет, следует ли выполнять последующее событие прокрутки. Если жест разрешен, то он обрабатывается компонентом Pager, а не другими элементами, например обработчиком жеста "провести, чтобы закрыть". Теперь по умолчанию жесты на левом краю первой страницы в Pager запрещены, поэтому в этой области можно использовать пролистывание для закрытия. На всех остальных страницах Pager будет обрабатывать все жесты, поэтому с них нельзя будет закрыть страницу с помощью свайпа. Чтобы реализовать функцию "Проведите, чтобы закрыть" на всех страницах, просто предоставьте специальный экземпляр GestureInclusion (см. PagerDefaults.disableLeftEdgeOnFirstPage), который игнорирует текущую страницу. Ещё одно важное изменение: компонент Pager больше не занимает весь экран по умолчанию. Чтобы он занимал весь экран, добавьте Modifier.fillMaxSize(). (I9d3aa)
  • Мы переименовали createAnchors в createRevealAnchors в API для показа контента при проведении пальцем по экрану(If5999).
  • Мы удалили RevealScope из API для показа контента при пролистывании. (Ie4ad5)
  • Мы удалили Revealing и Revealed из RevealValue в API для показа при проведении пальцем. (I8dbc5)
  • В API для объявлений, которые показываются при проведении пальцем, мы переименовали SwipeDirection в RevealDirection. (I7472f)
  • Мы изменили сигнатуру параметра positionalThreshold функции rememberRevealState объекта SwipeToReveal. (I29c0a)
  • Мы добавили новый параметр overscrollEffect в ScalingLazyColumn, TransformingLazyColumn и ScreenScaffold. (I0cee8)
  • При использовании PagerDefaults#snapFlingBehaviour параметр pagerSnapDistance заменен на параметр Int maxFlingPages, который можно использовать, чтобы указать максимальное количество страниц, которые должен пролистывать Pager. (I8cfc0)
  • У Wear Pager теперь есть собственная PagerScope, а не PagerScope из Compose Foundation. (I9195b)
  • Мы добавили поддержку свойства lineHeight для изогнутого текста (I1c936).
  • Мы добавили initialAnchorItemIndex и initialAnchorItemOffset в TransformingLazyColumnState и rememberTransformingLazyColumnState, чтобы исходное положение прокрутки можно было задать в TransformationLazyColumn. (I0a0d5)
  • Мы отказались от использования параметра runWithTimingDisabled в пользу параметра runWithMeasurementDisabled, который более точно описывает поведение: все показатели приостановлены. Кроме того, мы добавили суперкласс MicrobenchmarkScope, поскольку нельзя переопределить функцию runWithMeasurementDisabled, чтобы открыть доступ, так как она встроена. (I9e23b, b/389149423, b/149979716)
  • Мы добавили в API параметр TransformingLazyColumnItemScrollProgress.Unspecified, чтобы избежать появления рамок на TransformingLazyColumnItemScrollProgress. (I0835d)

Исправление ошибок

  • Улучшение Kdoc для CurvedTextStyle (Id45e3)
  • Мы сделали библиотеку SwipeableV2 (часть реализации SwipeToReveal) внутренней, а не общедоступной, но с ограничением доступа для группы библиотек. (Idbb94)
  • Мы добавили тесты в HierarchicalFocusCoordinator (I1ce54, b/395548918)
  • Мы улучшили SwipeToReveal в примерах Wear Compose Foundation. (I5f307)
  • Исправлены семантические данные оси прокрутки для verticalScrollAxisRange в TransformingLazyColumn для специальных возможностей (I68123)
  • Улучшена работа тактильной обратной связи на устройствах Wear4+ за счет удаления ненужных фоновых потоков (I39cfe).
  • Замените SwipeDismissableNavHost на PredictiveBackNavHost только в API 36 и более поздних версий. (I59bed)
  • Мы добавили защиту от сбоев при доступе к настройке "Уменьшение движения". (I01e2c)
  • Мы реализовали предварительную загрузку для TransformingLazyColumn, чтобы уменьшить количество временных зависаний (Icca88)

Версия 1.5.0-alpha09

29 января 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha09. Версия 1.5.0-alpha09 содержит эти коммиты.

Изменения в API

  • В версии CurvedTextStyle межсимвольный интервал разделен на интервал по часовой стрелке и против часовой стрелки. Это необходимо, поскольку буквы, написанные по часовой стрелке, расходятся от базовой линии, а буквы, написанные против часовой стрелки, сходятся к ней (поэтому требуется больший интервал между буквами) (I4b848).
  • Функция CompositionLocal LocalReduceMotion была упрощена и теперь возвращает логическое значение вместо объекта ReduceMotion. Интерфейс ReduceMotion больше не поддерживается. Предыдущие вызовы, например LocalReduceMotion.current.enabled(), можно заменить на LocalReduceMotion.current (I4937f).
  • В PagerDefaults параметр snapAnimationSpec переименован в SnapAnimationSpec. (I20c9a)

Версия 1.5.0-alpha08

15 января 2025 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha08. Версия 1.5.0-alpha08 содержит эти коммиты.

Изменения в API

  • Мы обновили все библиотеки Wear Compose до режима явного API. (Iebf9f)
  • Параметр анимации при переходе между страницами теперь является частью PagerDefaults. (Ifff64)
  • Мы добавили параметр смещения в SwipeToDismissBoxState. (I586bd)

Исправление ошибок

  • Теперь тактильная обратная связь на платформе Rotary вызывается для версий Wear OS после V (Idb03e)

Версия 1.5.0-alpha07

11 декабря 2024 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha07. Версия 1.5.0-alpha07 содержит эти коммиты.

Изменения в API

  • TransformingLazyColumnState теперь позволяет отслеживать текущий прогресс прокрутки на основе индексов закрепленных элементов. (I72b01)
  • Мы добавили анимацию в TransformingLazyColumn при добавлении, удалении и перемещении объектов, если у них есть новый Modifier.animateItem. (Iecb9c)
  • Теперь в TransformingLazyColumn можно посмотреть значения для beforeContentPadding и afterContentPadding. (Iccd5f)
  • TransformingLazyColumn теперь предоставляет композицию local LocalTransformingLazyColumnItemScope, которую компоненты (например, Card и Button в Material3) могут использовать для автоматической трансформации при размещении внутри TransformingLazyColumn. Звонящие могут отключить автоматическое изменение голоса с помощью нового оберточного элемента TransformExclusion. (I1652f)

Исправление ошибок

  • Мы обновили минимальную и максимальную скорости прокрутки для устройств с ОС версии U и более поздних. (I33559)
  • Мы исправили сбой, который возникал, если объект в TransformingLazyColumn не содержал композиций (Idb99d).
  • Мы добавили поддержку ScrollFeedbackProvider для роторной тактильной обратной связи в Android Vanilla ice cream. (Ibc553)
  • Мы увеличили значение параметра "Допуск на промах" при использовании SwipeToReveal, чтобы уменьшить вероятность случайного запуска прокрутки при вертикальной прокрутке. (Ic0672)
  • Мы обновили SwipeDismissableNavHost, чтобы при наличии API 35 и более поздних версий использовался PredictiveBackHandler. В таком случае будут применены новые анимации. (I08c11)

Версия 1.5.0-alpha06

13 ноября 2024 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha06. Версия 1.5.0-alpha06 содержит эти коммиты.

Изменения в API

  • Мы упростили ScrollInfoProvider для PagerState, удалив параметр orientation, который больше не нужен. Новое поведение заключается в том, что TimeText остается на месте при переходе на следующую страницу как по горизонтали, так и по вертикали. (I71767)
  • TransformingLazyColumn был представлен в более ранних версиях. Мы удаляем псевдонимы LazyColumn (которые перенаправляли на TransformingLazyColumn) и переходим на новое название TransformingLazyColumn. Мы также удалили свойство height из TransformingLazyColumnVisibleItemInfo. Вместо него используйте measuredHeight. (I0ea1e)
  • Мы изменили PagerDefaults.snapFlingBehavior snapAnimationSpec с Tween на Spring (I10d02, b/349781047, b/303807950).
  • Мы перевели версию LocalReduceMotion CompositionLocal в стабильную (Ia6f32).

Исправление ошибок

  • Мы обновили свойство Modifier.rotaryScrollable, чтобы использовать focusTargetWithSemantics для более эффективной поддержки семантики при работе с поворотным переключателем. (Ief0a0)
  • Мы обновили минимальную зависимость API до версии 1.7.4 для библиотек Compose. (I88b46)
  • Мы отключили изменение ширины в TransformingLazyColumn, чтобы устранить ошибку обрезки. (I3dfb8)
  • Мы исправили ошибку, из-за которой элементы исчезали после прокрутки с помощью TransformingLazyColumn (Id7668).
  • Мы добавили LazyLayoutSemantics для TransformingLazyColumn. (Ia8f56)

Версия 1.5.0-alpha05

30 октября 2024 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha05. Версия 1.5.0-alpha05 содержит эти коммиты.

Изменения в API

  • Мы добавили поддержку animateScrollTo в TransformingLazyColumnState, чтобы прокрутка к элементу сопровождалась анимацией. (I4097d)
  • Мы добавили requestScrollTo на TransformingLazyColumnState, чтобы отложить прокрутку до следующего измерения. (I20a5e)
  • Мы добавили поддержку свойства contentPadding в структурированных данных TransformingLazyColumn. (I3a69c)

Исправление ошибок

  • Мы исправили ошибку, из-за которой TransformingLazyColumn неправильно отображался, когда высота контента была меньше высоты экрана. (I6c3e1)
  • Значение ScrollInfoProvder для TransformingLazyColumn теперь правильно отслеживает первый элемент. (I1e4a3)
  • TransformingLazyColumnState теперь сохраняет свое состояние (anchorItemIndex и anchorItemScrollOffset). (I3d265)

Версия 1.5.0-alpha04

16 октября 2024 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha04. Версия 1.5.0-alpha04 содержит эти коммиты.

Изменения в API

  • Мы переименовали библиотеку Wear Compose Foundation LazyColumn в TransformingLazyColumn, чтобы было проще отличать ее от библиотеки Compose Foundation LazyColumn. (I0608b)
  • Добавлена поддержка вращающегося элемента управления для горизонтальных и вертикальных пейджеров. Теперь пользователи могут перемещаться по пейджерам с помощью вращающихся элементов управления. (I9770d)
  • Мы обновили новый PagerDefaults, чтобы было понятно, что по умолчанию пейджер будет привязываться к странице. (Iff7d0)
  • TransformingLazyColumnItemScrollProgress теперь является классом значений, что должно повысить эффективность. (Ic399e)
  • TransformingLazyColumn теперь поддерживает поворотный переключатель. (I05206)
  • TransformingLazyColumnState теперь поддерживает scrollToItem. (I507b3)
  • Удален параметр @ExperimentalWearFoundationApi из API SwipeToReveal (I34a66)

Версия 1.5.0-alpha03

2 октября 2024 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha03. Версия 1.5.0-alpha03 содержит эти коммиты.

Изменения в API

  • Мы добавили поддержку двунаправленных жестов пролистывания в SwipeToReveal для редких случаев, когда текущий экран не поддерживает закрытие с помощью жеста пролистывания. . По умолчанию раскрытие контента происходит только при проведении пальцем справа налево. Мы настоятельно рекомендуем не менять это поведение, чтобы избежать конфликта с функцией закрытия. (Ifac04)
  • Мы обновили LazyColumnState, чтобы переопределить canScrollForward и canScrollBackward. Теперь прокрутка останавливается, когда первый или последний элемент находится точно в центре экрана. (Ia77d7)
  • Мы добавили новые компоненты HorizontalPager и VerticalPager, которые помогают устранять распространенные проблемы, например с обработкой фокуса и взаимодействием с системным жестом для закрытия, которые могут возникать на устройствах Wear. (I2902b)
  • Мы добавили поддержку LazyColumn, чтобы показывать key и contentType клиента через layoutItems. (I1bd9c)

Исправление ошибок

  • Мы улучшили анимацию изогнутого текста, сделав ее более плавной с помощью флагов рисования. (I73a15)
  • Мы обновили документацию по диалоговому окну Material Dialog, чтобы отразить, что onDismissRequest не вызывается, если флаг show имеет значение false. (Ifd8d6)
  • Мы исправили ошибку с анимацией виньетки в диалоговом окне Material (I126bf).

Версия 1.5.0-alpha02

18 сентября 2024 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha02. Версия 1.5.0-alpha02 содержит эти коммиты.

Изменения в API

  • Мы добавили поддержку Wear Compose LazyColumn в ScreenScaffold (и реализовали ScrollInfoProvider для LazyColumnState). (Ib8d29)
  • Мы добавили viewportSize в LazyColumnLayoutInfo. (I4187f)

Исправление ошибок

  • Мы исправили ошибку, из-за которой при установке флага userScrollEnabled в значение false в ScalingLazyColumn не отключалась прокрутка с помощью поворотного переключателя. (I490ab, b/360295825)
  • Мы исправили ошибку, из-за которой при использовании изогнутого текста появлялись неожиданные вертикальные отступы. Высота изогнутого текста теперь более точно соответствует фактическому пространству, занимаемому текстом. Обратите внимание, что это может привести к сбоям в тестах скриншотов, которые включают изогнутый текст (Iaa6ef).
  • Мы отменили исправление ошибки в Dialog, из-за которой обратный вызов onDismissRequest вызывался, когда для showDialog было задано значение false, поскольку в некоторых случаях это приводило к многократному вызову onDismissRequest. (I64656)

Версия 1.5.0-alpha01

4 сентября 2024 г.

Выход androidx.wear.compose:compose-*:1.5.0-alpha01. Версия 1.5.0-alpha01 содержит эти коммиты.

Изменения в API

  • Мы добавили в библиотеку Wear Compose Foundation новый класс LazyColumn и связанные с ним API LazyColumnState и LazyColumnScope. Это основа для создания масштабируемых и трансформируемых эффектов с помощью Wear Compose. (Ib3b22)
  • Мы добавили индексированную версию itemsIndexed в LazyColumnScope в рамках нового API LazyColumn. (Ib4a57)
  • Мы добавили модификаторы LazyColumn, чтобы поддерживать масштабирование и морфинг. (Ie229a)
  • Версия HierarchicalFocusCoordinator стала стабильной. (I31035)
  • Мы добавили поддержку расстояния между буквами для изогнутого текста. (I3c740)
  • В файл CurvedLayout.curvedComposable добавлен параметр rotationLocked, чтобы запретить поворот компонентов. (I66898)
  • Временный API LocalUseFallbackRippleImplementation из wear material и wear material3 был удален (I62282).
  • Пользователь WearDevices.SQUARE удален из мультипредпросмотра @WearPreviewDevices (I11c02).

Исправление ошибок

  • SwipeToReveal теперь размещает показанные элементы на видимой части экрана. Это помогает, когда SwipeToReveal используется в списке, поскольку элементы всегда доступны для взаимодействия и не выходят за пределы экрана. (I38929)
  • SwipeToReveal теперь сбрасывает значение lastActionType на None, когда animatedTo завершает работу. (I59b03)
  • Улучшена документация по новому параметру rotationLocked на странице curvedComposable. (Ifbd57)
  • Исправлена ошибка, из-за которой происходил сбой при передаче NaN в performFling объекта ScalingLazyColumnSnapFlingBehavior. (Ic13da)
  • Исправлена ошибка, связанная с модификатором размера изогнутого макета (I0fedf).
  • Добавлена поддержка интервалов между буквами, заданных в атрибуте "sp". (I9f6e3)
  • Мы исправили ошибку в диалоговом окне Material2, из-за которой обратный вызов onDismissRequest не вызывался, когда диалоговое окно становилось невидимым (I64656).
  • Параметр LayoutCoordinates.introducesFrameOfReference переименован в LayoutCoordinates.introducesMotionFrameOfReference, чтобы лучше отражать его назначение. Переименована связанная функция для расчета координат на основе этого флага. (I3a330)

Версия 1.4

Версия 1.4.1

12 февраля 2025 г.

Выход androidx.wear.compose:compose-*:1.4.1. Версия 1.4.1 содержит эти коммиты.

Исправление ошибок

  • Мы устранили проблему, из-за которой происходил сбой при доступе к глобальной настройке "Уменьшение движения". Она возникала на некоторых платформах, где эта настройка не была предусмотрена. (I01e2c)

Версия 1.4.0

4 сентября 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0. Версия 1.4.0 содержит эти коммиты.

Важные изменения с версии 1.3.0

  • ScalingLazyColumn и Picker теперь по умолчанию поддерживают ввод с помощью поворотного переключателя. Рекомендуем удалить явную обработку поворотного переключателя и использовать системное поведение по умолчанию. При необходимости используйте параметр rotaryScrollableBehavior, чтобы настроить прокрутку или прилипание. Для прилипания рекомендуется использовать параметр flingBehavior, чтобы задать прилипание и прокрутку касанием.
  • Modifier.rotaryScrollable – новый модификатор, который связывает события вращения с контейнерами с возможностью прокрутки, позволяя пользователям прокручивать контент с помощью заводной головки или вращающегося безеля на устройстве Wear OS.
  • SwipeDismissableNavHost теперь предоставляет анимацию входа для переходов в приложении.
  • PositionIndicator теперь показывается по умолчанию при первом появлении экрана.

Дополнительные изменения

Версия 1.4.0-rc01

21 августа 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0-rc01. Версия 1.4.0-rc01 содержит эти коммиты.

  • Мы обновили зависимости Compose до версии 1.7.0-rc01 и закрепили Wear Compose Navigation на androidx.lifecycle 2.8.3.

Версия 1.4.0-beta03

12 июня 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0-beta03. Версия 1.4.0-beta03 содержит эти коммиты.

Исправление ошибок

  • Мы обновили Modifier.rotaryScrollable, заменив атрибут focusable на focusTarget, чтобы повысить производительность. (Id294b)
  • Мы устранили проблему, из-за которой игра "ProgressIndicator" повторяла объявление в разделе "TalkBack". (I94563)
  • Мы обновили базовые профили библиотеки Wear Compose. (I3cbc3)

Версия 1.4.0-beta02

29 мая 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0-beta02. Версия 1.4.0-beta02 содержит эти коммиты.

Исправление ошибок

  • Мы увеличили ширину границ, передаваемых программам чтения с экрана из изогнутого текста, чтобы устранить проблемы с усечением (Id865f).
  • Мы ограничили границы объекта HorizontalPageIndicator, который передается программам чтения с экрана. Ранее индикатор занимал весь экран (Id8d7a).

Версия 1.4.0-beta01

14 мая 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0-beta01. Версия 1.4.0-beta01 содержит эти коммиты.

Версия 1.4-beta01 библиотеки Compose для Wear OS означает, что в ней реализованы все функции и API заблокирован (за исключением экспериментальных функций). В Wear Compose 1.4 добавлены следующие новые функции:

  • Мы добавили новый модификатор Modifier.rotaryScrollable, который связывает события вращения с контейнерами с возможностью прокрутки. Благодаря этому пользователи могут прокручивать контент с помощью заводной головки или вращающегося безеля на устройстве Wear OS. Кроме того, в приложениях ScalingLazyColumn и Picker теперь по умолчанию поддерживается ввод с помощью поворотного переключателя. Используйте параметр rotaryScrollableBehavior, чтобы настроить прокрутку или привязку. Для привязки рекомендуется также указывать параметр flingBehavior при прокрутке с помощью сенсорного экрана.
  • SwipeDismissableNavHost теперь предоставляет анимацию входа для переходов в приложении.
  • PositionIndicator теперь показывается по умолчанию при первом появлении экрана.
  • Свойства SelectableChip и SplitSelectableChip были добавлены как вариант свойства ToggleChip. Используйте их вместе со свойством RadioButton, чтобы обеспечить доступность с помощью семантики, которую можно выбрать, а не переключить.
  • ListHeader теперь поддерживает корректировку высоты, если контенту требуется дополнительная высота для размещения шрифтов большого размера.

Исправление ошибок

  • Мы исправили ошибку, из-за которой при выборе чипов, которые можно выбрать, дважды нажималось "Переключить", когда они уже были выбраны. (I7ed88)

Версия 1.4.0-alpha08

1 мая 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0-alpha08. Версия 1.4.0-alpha08 содержит эти коммиты.

Изменения в API

  • Мы внесли следующие изменения в новый API для вращающегося элемента: переименовали Modifier.rotary в Modifier.rotaryScrollable, интерфейс RotaryBehavior в RotaryScrollableBehavior, функцию handleScrollEvent в performScroll, а также переименовали RotaryScrollableAdapter в RotaryScrollableLayoutInfoProvider и удалили свойство scrollableState. (I0c8a6)
  • Мы внесли дополнительные изменения в Rotary API: переименовали RotaryScrollableLayoutInfoProvider в RotarySnapLayoutInfoProvider (поскольку этот поставщик нужен только для поворотного контроллера с привязкой); изменили тип параметра snapOffset в RotaryScrollableDefaults.snapBehavior snapOffset с Int на Dp. (Iddebe)
  • Мы переименовали параметр clickInteractionSource на странице SplitSelectableChip в containerInteractionSource. (Ia8f84)
  • Мы изменили названия параметров обратного вызова клика для SplitSelectableChip: с onClick на onSelectionClick и с onBodyClick на onContainerClick. (I32237)

Исправление ошибок

  • Мы изменили горизонтальные отступы для PositionIndicator на 2 dp (было 5 dp), чтобы исправить ошибку, из-за которой PositionIndicator (полоса прокрутки) перекрывала контент с возможностью прокрутки. Обратите внимание, что из-за изменения отступов существующие скриншоты, на которых есть значок PositionIndicator, могут отображаться некорректно. (I57472)
  • Мы улучшили документацию по новому API для вращающегося элемента управления, добавив описание различий между устройствами с низким и высоким разрешением. (I63abe)
  • Мы исправили исключение, связанное с выходом за пределы диапазона, в SwipeDismissableNavHost. Оно могло возникать, когда интерполированные альфа-значения были меньше нуля. (Ib75a1, b/335782510)

Версия 1.4.0-alpha07

17 апреля 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0-alpha07. Версия 1.4.0-alpha07 содержит эти коммиты.

Изменения в API

  • Мы добавили новый модификатор Modifier.rotary, который связывает события вращения с контейнерами с возможностью прокрутки. Благодаря этому пользователи могут прокручивать контент с помощью заводной головки или вращающегося безеля на устройстве Wear OS. Кроме того, ScalingLazyColumn и Picker теперь по умолчанию поддерживают ввод с помощью поворотного переключателя. В них добавлены новые перегрузки, включающие параметр rotaryBehavior, который позволяет задать конфигурацию прокрутки или привязки. Если для параметра rotaryBehavior задано значение snap, рекомендуется также указать snap для параметра flingBehavior, чтобы включить прокрутку с прилипанием. (I2ef6f)
  • Источники NestedScroll "Перетаскивание" и "Бросок" заменяются на UserInput и SideEffect, чтобы учесть расширенное определение этих источников, которое теперь включает анимацию (Side Effect), а также колесико мыши и клавиатуру (UserInput). (I40579)
  • Мы добавили значки SelectableChip и SplitSelectableChip, чтобы было проще различать переключатели, например Switch/Checkbox, и элементы управления, например RadioButton. Это заменяет ранее добавленные перегрузки ToggleChip/SplitToggleChip параметрами selectionControl. (Ia0217)
  • Изменен тип доступа к IndeterminateStrokeWidth в ProgressIndicatorDefaults на открытый. (I5b5a4)

Версия 1.4.0-alpha06

3 апреля 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0-alpha06. Версия 1.4.0-alpha06 содержит эти коммиты.

Исправление ошибок

  • Мы добавили внутреннюю версию поддержки вращающегося элемента управления в рамках более масштабной работы по переносу поведения этого элемента из Horologist в AndroidX. (I617d1)
  • Мы добавили внутреннюю версию поддержки тактильных ощущений в рамках более масштабной работы по переносу поведения Rotary из Horologist в AndroidX. (I5568a)

Версия 1.4.0-alpha05

20 марта 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0-alpha05. Версия 1.4.0-alpha05 содержит эти коммиты.

Изменения в API

  • Мы сделали общедоступными свойства initialCenterItemIndex и initialCenterItemScrollOffset объекта ScalingLazyListState. (I0c616)
  • Мы сделали FullScreenStrokeWidth из ProgressIndicatorDefaults общедоступным. (Ibea23)

Исправление ошибок

  • Мы улучшили производительность PositionIndicator, уменьшив количество вызовов layoutInfo из ScalingLazyColumn. (Idc83d)

Версия 1.4.0-alpha04

6 марта 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0-alpha04. Версия 1.4.0-alpha04 содержит эти коммиты.

Изменения в API

  • Мы добавили новую перегрузку для ToggleChip и SplitToggleChip, которая принимает параметр selectionControl вместо параметра toggleControl. Этот атрибут следует использовать вместе с элементом управления RadioButton, чтобы обеспечить доступность (I1d6d9) и предоставить семантику с возможностью выбора вместо семантики с возможностью переключения.
  • Мы изменили названия параметров для новой перегрузки selectionControl с onSelected на onSelect для ToggleChip и SplitToggleChip (I1a971)

Версия 1.4.0-alpha03

21 февраля 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0-alpha03. Версия 1.4.0-alpha03 содержит следующие коммиты:

Изменения в API

  • Поддержка контейнера Modifier.inspectable прекращена. Этот API создает больше недействительных значений модификатора, чем необходимо, поэтому его использование не рекомендуется. Разработчикам рекомендуется реализовать метод inspectableProperties() в ModifierNodeElement, если они хотят предоставить доступ к свойствам модификатора. (Ib3236)

Исправление ошибок

  • Мы исправили ошибку в документации по аннотациям WearPreview*. (Id526d)

Версия 1.4.0-alpha02

7 февраля 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0-alpha02. Версия 1.4.0-alpha02 содержит следующие коммиты:

Исправление ошибок

  • Мы исправили ошибку в функции "Проведите, чтобы показать", из-за которой можно было взаимодействовать с выполненным действием для одного объекта (и отменить его), начав проводить по другому объекту.(Ide059)
  • Мы обновили ListHeader, чтобы поддерживать корректировку высоты, когда контенту требуется дополнительная высота для размещения шрифтов большого размера. (I7290c, b/251166127)

Версия 1.4.0-alpha01

24 января 2024 г.

Выход androidx.wear.compose:compose-*:1.4.0-alpha01. Версия 1.4.0-alpha01 содержит следующие коммиты:

Новые функции

  • Мы добавили анимацию входа в SwipeDismissableNavHost для переходов в приложении.(cfeb79a)
  • PositionIndicator теперь показывается по умолчанию при первом появлении экрана. Это изменение было введено, чтобы помочь соблюдать рекомендации по обеспечению качества приложений для Wear OS. К сожалению, это означает, что скриншоты, на которых есть PositionIndicator, нужно будет обновить, поскольку раньше PositionIndicator не показывался. (419cef7)

Изменения в API

  • Мы добавили новый API эффекта пульсации в библиотеки wear:compose-material и wear:compose-material3, который заменяет устаревший API rememberRipple. Также добавляет временные CompositionLocal, LocalUseFallbackRippleImplementation, чтобы вернуть компоненты Material к использованию устаревших API rememberRipple/RippleTheme. В следующем стабильном выпуске эта функция будет удалена. Она предназначена только для временного облегчения перехода на пользовательский RippleTheme. Подробную информацию о переходе и причинах этого изменения можно найти на сайте developer.android.com. (af92b21)
  • Мы сделали свойство ColorScheme неизменяемым, поэтому теперь отдельные изменения цвета будут выполняться медленнее, но более распространенные операции с цветами станут быстрее. Мы решили убрать эту функцию, поскольку для большинства приложений обновление отдельных цветов не является основным вариантом использования. Это по-прежнему возможно, но теперь будет выполняться больше операций, что позволит значительно сократить количество подписок на состояние во всем коде материалов и повлияет на стоимость инициализации и выполнения для более стандартных вариантов использования. (f5c48b7)
  • Компоненты Wear Material и Wear Material3, в API которых есть MutableInteractionSource, теперь содержат допускающий значение null MutableInteractionSource, по умолчанию равный null. Здесь нет семантических изменений: передача значения null означает, что вы не хотите поднимать MutableInteractionSource, и при необходимости он будет создан внутри компонента. Если задать значение null, некоторые компоненты никогда не будут выделять MutableInteractionSource, а другие будут создавать экземпляр только при необходимости, что повысит производительность этих компонентов. Если вы не используете MutableInteractionSource, передаваемый этим компонентам, рекомендуется передавать вместо него значение null. Рекомендуем внести аналогичные изменения в собственные компоненты. (f8fa920)
  • Мы обновили rememberExpandableState, чтобы сохранять состояние развернутого объявления. Это гарантирует, что данные сохраняются при переходе на другой экран и восстанавливаются при возвращении на исходный. (5c80095)

Исправление ошибок

  • Мы обновили настройку ReduceMotion, чтобы использовать слушателя, учитывающего жизненный цикл. (7c6b122)
  • Мы обновили слушателя TouchExplorationStateProvider, чтобы он учитывал жизненный цикл (be28b01)
  • Мы удалили слой materialcore для отпечатка пальца CompactButton, чтобы повысить эффективность распознавания (25db8e9).
  • Мы сделали функцию BasicSwipeToDismissBox более устойчивой к смещениям NaN, чтобы избежать исключений (b983739).
  • Мы обновили параметр BasicSwipeToDismissBox,чтобы значения альфа-канала находились в диапазоне 0–1.
  • Мы исправили ошибку в ToggleButton, SplitToggleButton, Checkbox, Switch и RadioButton, из-за которой объявления для специальных возможностей повторялись (ранее дублировались семантические роли) (d11eeb7).

Версия 1.3

Версия 1.3.1

3 апреля 2024 г.

Выход androidx.wear.compose:compose-*:1.3.1. Версия 1.3.1 содержит эти коммиты.

Исправление ошибок

  • Мы исправили ошибку в функции "Проведите, чтобы показать", из-за которой можно было взаимодействовать с выполненным действием для одного объекта (и отменить его), начав проводить по другому объекту. (Ide059)

Версия 1.3.0

24 января 2024 г.

Выход androidx.wear.compose:compose-*:1.3.0. Версия 1.3.0 содержит следующие коммиты:

Важные изменения с версии 1.2.0

  • Класс SwipeToDismissBoxState, перечисление SwipeToDismissValue и функция расширения Modifier.edgeSwipeToDismiss теперь входят в пакет androidx.wear.compose.foundation, а не androidx.wear.compose.material. Обновленная архитектура позволяет реализовать обработку жестов независимо от других аспектов дизайна. Рабочие процессы Material Design, например применение цветов из настроенной темы, обрабатываются отдельно.
  • Классы SwipeToRevealCard и SwipeToRevealChip помогают реализовать recommended swipe-to-reveal guidance. Класс SwipeToRevealSample демонстрирует, как использовать эти компоненты.
  • В версии 1.3.0-alpha02 мы внесли изменения, из-за которых объекты Chip и ToggleChip увеличиваются в высоту, чтобы лучше поддерживать масштабирование шрифта, выбранное пользователем. Это может привести к обрезке. Чтобы устранить эту проблему, для формы large в MaterialTheme теперь используется больший радиус скругления углов (26 dp вместо 24 dp). Объекты Chip и ToggleChip используют новый радиус скругления, чтобы избежать обрезки контента по угламToggleChip.

    • Большинство Chips и ToggleChips не изменились, поскольку их высота по умолчанию составляет 52 dp. Однако объекты Chip и ToggleChip, содержащие несколько строк основного или дополнительного текста метки или для которых переопределена высота, могут привести к сбою тестов скриншотов.

Дополнительные изменения

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

Рекомендации по реализации

  • Если в приложении можно перемещаться по экрану, например в приложении с картой, отключите обработку жестов пролистывания, задав для параметра userSwipeEnabled значение false в композиции SwipeDismissableNavHost, и добавьте кнопку, позволяющую вернуться на предыдущий экран.
  • Чтобы отключить анимацию для индикатора позиции во время появления и изменения позиции в прокручиваемом списке, используйте объект SnapSpec.
  • Пока медиаприложение загружает контент для воспроизведения, показывайте пустой компонент Placeholder.
  • Чтобы создать коллекцию раскрывающихся элементов по запросу, попробуйте использовать экспериментальный класс ExpandableStateMapping.

Версия 1.3.0-rc01

10 января 2024 г.

Выход androidx.wear.compose:compose-*:1.3.0-rc01. Версия 1.3.0-rc01 содержит следующие коммиты:

Исправление ошибок

  • Мы обновили большую форму MaterialTheme, чтобы использовать радиус скругления углов 26 dp. Теперь он будет использоваться в чипе и ToggleChip. Это изменение необходимо, чтобы поддерживать регулировку высоты, когда контенту требуется дополнительная высота для размещения большого размера шрифта. В противном случае существующая форма стадиона обрезает часть текста.

    Текст обрезан по углам
    Рисунок 1. Текст обрезан по углам.
    Текст не обрезан
    Рисунок 2. Текст не обрезан.

    Это изменение может привести к сбоям в тестах скриншотов. (I2e6ae)

Версия 1.3.0-beta02

13 декабря 2023 г.

Выход androidx.wear.compose:compose-*:1.3.0-beta02. Версия 1.3.0-beta02 содержит следующие коммиты:

Исправление ошибок

  • Мы восстановили исходное движение прокрутки в BasicSwipeToDismissBox. В предыдущей версии это было изменено, и переход к следующему слайду происходил, когда палец касался экрана. (Id8e76)

Версия 1.3.0-beta01

15 ноября 2023 г.

Выход androidx.wear.compose:compose-*:1.3.0-beta01. Версия 1.3.0-beta01 содержит следующие коммиты:

Версия 1.3-beta01 библиотеки Compose для Wear OS означает, что в ней реализованы все функции и API заблокирован (за исключением экспериментальных функций). В Wear Compose 1.3 добавлены следующие новые функции:

  • SwipeToDismissBoxState, SwipeToDismissValue и Modifier.edgeSwipeToDismiss были перенесены из androidx.wear.compose.material в androidx.wear.compose.foundation вместе с реализацией функции "Проведите, чтобы закрыть" в BasicSwipeToDismissBox. Это позволяет использовать обработку жестов для закрытия свайпом независимо от Material Design, например из SwipeDismissableNavHost в androidx.wear.compose.navigation. SwipeToDismissBox из androidx.wear.compose.material по-прежнему рекомендуется использовать с Material Design, поскольку он извлекает цвета из MaterialTheme, а затем передает оставшуюся реализацию в BasicSwipeToDismissBox.
  • Теперь параметр SwipeDismissableNavHost поддерживает новый параметр userSwipeEnabled, позволяющий отключать обработку пролистывания на экранах, где она не требуется.
  • BasicSwipeToDismissBox улучшил обработку фокуса с помощью HierarchicalFocusCoordinator.
  • В SwipeToReveal появились новые компоненты SwipeToRevealCard и SwipeToRevealChip, которые соответствуют рекомендациям по удобству использования для Card и Chip. Также поддерживается отмена второстепенного действия.
  • DefaultTextStyle теперь отключает отступы шрифтов, чтобы обеспечить единообразие на платформе Android.
  • Chip и ToggleChip теперь автоматически подстраивают свою высоту под контент, который увеличился из-за крупного шрифта, выбранного для специальных возможностей.
  • PositionIndicator теперь имеет отдельные спецификации анимации для эффектов появления, исчезновения и изменения положения. Чтобы обеспечить высокую производительность, мы рекомендуем отключать эффект появления и изменение позиции при использовании списков с возможностью прокрутки.
  • ExpandableStateMapping позволяет создавать ExpandableStates по запросу, а не только в области действия @Composable.
  • Placeholder теперь позволяет сбросить статус, если контент больше не готов к публикации. Кроме того, настройка "Уменьшение движения" теперь применяется к эффекту мерцания и стирания на Placeholder.

Известные проблемы

  • PositionIndicator не показывается при первом появлении экрана. Мы планируем внести изменения в одну из ранних альфа-версий 1.4, чтобы сначала показывался только текст, без анимации.

Изменения в API

  • Уровень Foundation SwipeToDismissBox переименован в BasicSwipeToDismissBox. Это позволяет более четко различать компонент уровня Foundation и уровень Material SwipeToDismissBox. Последний извлекает цвета из MaterialTheme, чтобы использовать их в полупрозрачных слоях, а остальную реализацию делегирует BasicSwipeToDismissBox. (Ibecfc)
  • Мы пометили rememberExpandableStateMapping как экспериментальную функцию и улучшили работу expandableItem. (I5f6bc)
  • Мы заменили класс SwipeToRevealAction в Material SwipeToReveal Card и Chip API на API на основе слотов, в котором используются композиции SwipeToRevealPrimaryAction, SwipeToRevealSecondaryAction и SwipeToRevealUndoAction. Примеры использования нового API можно найти в образцах кода. (Ia8943)
  • Мы заменили флаги анимации PositionIndicator на параметры AnimationSpec. Отдельные анимации можно отключить, передав snap в качестве AnimationSpec. (I6c523)

Исправление ошибок

  • Мы исправили ошибку, которая возникала при использовании ограниченного изогнутого текста, когда размер был ограничен (I50efe).
  • Мы устранили потенциальный сбой NaN, связанный с curvedComposable (I970eb).
  • Мы вернули анимацию, которая выделяет изменение позиции на странице PositionIndicator. (Ieb424)
  • Мы удалили слой material-core для чипа Material, чтобы повысить его производительность. (If2dcb)

Версия 1.3.0-alpha08

18 октября 2023 г.

Выход androidx.wear.compose:compose-*:1.3.0-alpha08. Версия 1.3.0-alpha08 содержит следующие коммиты:

Изменения в API

  • Мы добавили отдельные флаги в перегрузки PositionIndicator, чтобы управлять разными анимациями: showFadeInAnimation, showFadeOutAnimation и showPositionAnimation. Предыдущий API больше не поддерживается, и все вызовы перенаправляются в новый. Чтобы обеспечить высокую производительность и единообразие интерфейса, при использовании PositionIndicator с прокручиваемым списком мы рекомендуем отключить флаги showFadeInAnimation и showPositionAnimation. Если PositionIndicator используется как отдельный индикатор, например для изменения громкости, рекомендуем включить все три анимации. (I44294)
  • Мы прекратили поддержку Material SwipeToDismissBoxState, SwipeToDismissValue и edgeSwipeToDismiss после переноса функции "Провести, чтобы закрыть" в wear.compose.foundation. Замените их на эквиваленты wear.compose.foundation. (Iee8c9)

Исправление ошибок

  • Мы обновили базовые профили для библиотек wear compose foundation, material и navigation. (Idb060)
  • Мы отменили изменение в поведении PositionIndicator, которое было введено в предыдущем списке изменений. Теперь PositionIndicator анимируется при первом появлении экрана. Мы планируем внести аналогичное изменение в одну из альфа-версий 1.4, чтобы изначально отображался значок PositionIndicator, но без анимации. (I41843)
  • Мы устранили некоторые проблемы с производительностью в PositionIndicator. (I1c654, b/302399827)
  • Мы оптимизировали реализацию по умолчанию поставщика статуса исследования касаний, чтобы он полагался на State<Boolean>, а не на производный статус. (Ieec4d)
  • Мы задали прямоугольники systemGestureExclusion для Android 13 и более поздних версий. (Ib1f4b)

Версия 1.3.0-alpha07

4 октября 2023 г.

Выход androidx.wear.compose:compose-*:1.3.0-alpha07. Версия 1.3.0-alpha07 содержит следующие коммиты:

Изменения в API

  • Мы добавили в PositionIndicator отдельные флаги для управления разными анимациями: showFadeInAnimation, showFadeOutAnimation и showPositionAnimation. Предыдущий API больше не поддерживается, и все вызовы перенаправляются в новый. Чтобы обеспечить высокую производительность и единообразие интерфейса, при использовании PositionIndicator с прокручиваемым списком мы рекомендуем отключить флаги showFadeInAnimation и showPositionAnimation. Если PositionIndicator используется как отдельный индикатор, например для изменения громкости, рекомендуем включить все три анимации. (Ia2d63)

Исправление ошибок

  • Мы улучшили функцию "Проведите, чтобы показать", добавив анимацию затухания для текста основного действия, а также затухание дополнительного действия и изменение масштаба значка при полном раскрытии. (Ib7223)
  • Рекомендуем сделать действия, выполняемые с помощью функции "Проведите, чтобы показать", доступными. Мы добавили специальные действия для обеспечения доступности в наши примеры использования этой функции. (I42224)
  • Мы улучшили работу функции SwipeToDismissBox, в том числе переработали ее код, чтобы исходная логика не вызывала повторную композицию. Теперь SwipeToDismissBox будет занимать весь экран. (Ie0aa2)
  • Исправлена ошибка, из-за которой значок PositionIndicator исчезал. (I2091a)
  • Улучшена производительность PositionIndicator за счет оптимизации перекомпоновки. Позже были добавлены новые флаги для управления анимацией (fadeIn, fadeOut и positionChange) (см. раздел "Изменения в API") (Ifac7d).
  • Мы добавили тесты Microbenchmark для PositionIndicator (Idf875)

Версия 1.3.0-alpha06

20 сентября 2023 г.

Выход androidx.wear.compose:compose-*:1.3.0-alpha06. Версия 1.3.0-alpha06 содержит следующие коммиты:

Исправление ошибок

  • Мы добавили поддержку свойства Modifier.edgeSwipeToDismiss в структурированных данных SwipeToReveal. (I95774, b/293444286)
  • Мы добавили примеры для Material SwipeToRevealChip и SwipeToRevealCard. (Ieb974)
  • Мы обновили базовые профили для библиотек Wear Compose Foundation и Material. (I1dd1f)

Версия 1.3.0-alpha05

6 сентября 2023 г.

Выход androidx.wear.compose:compose-*:1.3.0-alpha05. Версия 1.3.0-alpha05 содержит следующие коммиты:

Исправление ошибок

  • Мы добавили обработку в функцию "Проведите, чтобы показать", чтобы можно было проводить только по одному элементу за раз. (I3cd7a)
  • Улучшена документация по ScalingLazyColumnDefaults, чтобы она лучше соответствовала фактическому поведению. (I886d3)

Версия 1.3.0-alpha04

23 августа 2023 г.

Выход androidx.wear.compose:compose-*:1.3.0-alpha04. Версия 1.3.0-alpha04 содержит следующие коммиты.

Новые функции

  • Мы добавили возможность отменить второе действие, выполняемое при нажатии клавиши SwipeToReveal. (I7a22d)

Изменения в API

  • Добавьте HorizontalPageIndicator в библиотеку Wear Material3. (Ifee99)
  • Обновлены инструменты предварительного просмотра Wear Compose, чтобы использовать библиотеку androidx.wear.tooling.preview. (Ib036e)

Исправление ошибок

  • Исправлена ошибка, из-за которой модификаторы в круглых кнопках не объединялись в цепочку. (I5e162)

Версия 1.3.0-alpha03

9 августа 2023 г.

Выход androidx.wear.compose:compose-*:1.3.0-alpha03. Версия 1.3.0-alpha03 содержит следующие коммиты:

Изменения в API

  • Мы добавили два новых компонента Material для реализации SwipeToReveal с помощью карточек и чипов. Эти функции следуют рекомендациям по UX для компонентов и упрощают разработчикам реализацию SwipeToReveal с помощью существующих компонентов Wear Material. (I7ec65)
  • Мы включили аннотации FloatRange в качестве ограничений API, которые ранее указывались в комментариях. (Icb401)

Исправление ошибок

  • Мы перенесли исходную логику прокрутки ScalingLazyColumn в onGloballyPositioned(). (Ic90f1)
  • Теперь мы используем drawWithCache в PositionIndicator, ProgressIndicator и SelectionControls, чтобы оптимизировать распределение штрихов. (I5f225, b/288234617)
  • Мы исправили проблему с видимостью галочки в отключенных состояниях. (Ib25bf)
  • Мы обновили Placeholder, чтобы можно было сбросить настройки и показать плейсхолдер, если контент больше не готов. (Ibd820)
  • Мы исправили некоторые ошибки в нестабильных тестах Placeholder (Idb560).

Версия 1.3.0-alpha02

26 июля 2023 г.

Выход androidx.wear.compose:compose-*:1.3.0-alpha02. Версия 1.3.0-alpha02 содержит следующие коммиты:

Изменения в API

  • Мы добавили ExpandableStateMapping – новый способ создания ExpandableStates в случаях, когда их нужно генерировать по запросу, а не обязательно в рамках @Composable (Iff9e0).
  • SwipeToDismissBox перенесен из пакета androidx.wear.compose.material в пакет androidx.wear.compose.foundation. (I275fb)
  • Обновлены файлы API для аннотирования подавления совместимости. (I8e87a, b/287516207)
  • Мы сделали общедоступными константы высоты для Chip, CompactChip и ToggleChip (Idbfde).
  • Мы сделали общедоступными горизонтальные и вертикальные поля для символов Chip и CompactChip. (Ieeaf7)
  • Добавлена возможность отключить обработку пролистывания в SwipeDismissableNavHost с помощью нового параметра userSwipeEnabled. (Id2a0b, b/230865655)
  • Мы обновили библиотеку Wear Compose Navigation, чтобы в ней использовался новый компонент SwipeToDismissBox из Wear Compose Foundation. (I4ff8e)

Исправление ошибок

  • Мы исправили ошибку, из-за которой expandedItem не показывал правильный контент после нажатия на кнопку, если у него были кнопки. (I1899d, b/289991514)
  • Улучшено управление фокусом для SwipeToDismissBox (и, следовательно, SwipeDismissableNavHost) с помощью HierarchicalFocusCoordinator (I45362, b/277852486)
  • Мы исправили обработку жестов в игре "SwipeableV2". (I89737)
  • Мы завершили работу над базовыми профилями для версии 1.2. (Id5740)
  • После переноса SwipeToDismissBox в Foundation реализация Material SwipeToDismissBox теперь перенаправляется в Foundation и предоставляет значения цвета по умолчанию из своей темы.(If8451)
  • Мы добавили в ListHeader семантику заголовков. (Ic5420)
  • Chip и ToggleChip теперь будут подстраивать свою высоту под контент, который увеличился из-за использования крупных шрифтов для специальных возможностей. (Iaf302)
  • Исправлена ошибка в семантической роли области SplitToggleChip, на которую можно нажать, для обеспечения доступности. (Ieed3a)
  • Настройка "Уменьшение движения" теперь отключает мерцание и эффект стирания на плейсхолдерах. (I91046)
  • Stepper и InlineSlider теперь поддерживают многократные нажатия при длительном удерживании, поэтому вы можете быстро увеличить или уменьшить значение Stepper и InlineSlider, удерживая кнопки "+" или "-". (I27359)

Версия 1.3.0-alpha01

21 июня 2023 г.

Выход androidx.wear.compose:compose-*:1.3.0-alpha01. Версия 1.3.0-alpha01 содержит следующие коммиты:

Исправление ошибок

  • Как мы сообщали в 1.2.0-alpha07 и 1.2.0-alpha10, теперь мы меняем DefaultTextStyle, чтобы отключить отступы шрифтов и обеспечить единообразие на платформе Android. Это позволит избежать обрезки текста при использовании крупных шрифтов, а также может повлиять на макеты экранов, поэтому скриншоты тестов нужно будет обновить. Например, здесь мы видим, что текст обрезается (Ic6a86).
Текст обрезается при большом размере шрифта
Рисунок 1. Текст обрезан.
  • Если отключить отступы шрифта, он исчезнет:
Текст не обрезается при большом размере шрифта
Рисунок 2. Текст не обрезан.
  • Мы обновили wear.compose.foundation, чтобы он был зависимостью API wear.compose.material (I72004, b/285404743).
  • Мы исправили ошибку в SwipeToDismissBox. Ключи фона и контента теперь передаются в блок "Запомнить", чтобы при изменении контента или фона создавались новые модификаторы. (Ib876c, b/280392104)
  • Мы обновили TimeText, чтобы при выборе 12- или 24-часового формата времени использовались региональные настройки. (If4a3d)
  • Мы устранили несоответствие в параметрах по умолчанию SwipeToDismissBox и contentScrimColor. (I2d70f)
  • Мы улучшили обработку движения в SwipeToReveal. (I28fb7)

Известные проблемы

  • Поддержка размера шрифта, заданного пользователем, – это требование к доступности. Мы знаем, что многострочные чипы могут привести к обрезке текста при отображении с большим размером шрифта, поэтому в ранней альфа-версии 1.3 мы обновим чип, чтобы в таких случаях можно было регулировать высоту.

Версия 1.2

Версия 1.2.1

18 октября 2023 г.

Выход androidx.wear.compose:compose-*:1.2.1. Версия 1.2.1 содержит следующие коммиты:

Исправление ошибок

  • Исправлена ошибка, из-за которой значок PositionIndicator исчезал. (7a167f)

Версия 1.2.0

9 августа 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0. Версия 1.2.0 содержит следующие коммиты:

Важные изменения с версии 1.1.0

  • Стабильная версия Compose для Wear OS 1.2.0 (подробнее)
  • Список ключевых изменений в Wear Compose 1.2 можно найти в примечаниях к выпуску Compose for Wear OS 1.2 Beta01.

Версия 1.2.0-rc01

26 июля 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0-rc01. Версия 1.2.0-rc01 содержит следующие коммиты:

Исправление ошибок

  • Мы завершили работу над базовыми профилями для версии 1.2 (Id5740).

Версия 1.2.0-beta02

7 июня 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0-beta02. Версия 1.2.0-beta02 содержит следующие коммиты:

Новые функции

  • Мы добавили новую экспериментальную переменную LocalReduceMotion CompositionLocal, которая отключает масштабирование и затухание на ScalingLazyColumn. (I58024)

Исправление ошибок

  • Мы обновили базовые профили для библиотек wear compose foundation и material(I4725d).
  • Мы устранили несоответствие в значениях по умолчанию для параметров SwipeToDismissBox и contentScrimColor (I2d70f).
  • Мы исправили значение по умолчанию DefaultTextStyle, которое использовалось для настройки IncludeFontPadding (I737ed).

Версия 1.2.0-beta01

24 мая 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0-beta01. Версия 1.2.0-beta01 содержит следующие коммиты:

Что нового в Compose для Wear OS 1.2

Версия 1.2-beta01 библиотеки Compose для Wear OS означает, что в ней реализованы все функции и API заблокирован (за исключением экспериментальных функций). В Wear Compose 1.2 добавлены следующие новые функции:

  • expandableItem и expandableItems – два новых компонента Foundation, которые позволяют разворачивать элементы в ScalingLazyColumn. Используйте expandableItem для одного разворачиваемого элемента, например текста, в котором указано количество строк. Используйте expandableItems для группы раскрывающихся элементов и expandableButton, чтобы упростить создание кнопки, которая сворачивается после раскрытия контента.
  • HierarchicalFocusCoordinator – эта экспериментальная composable-функция позволяет отмечать поддеревья композиции как доступные или недоступные для фокуса.
  • Picker – теперь API включает userScrollEnabled, чтобы управлять тем, активен ли выборщик при прокрутке пользователем.
  • PickerGroup – новая composable-функция для одновременной работы с несколькими селекторами. Он обрабатывает фокус между элементами выбора с помощью API HierarchicalFocusCoordinator и позволяет автоматически центрировать элементы выбора.
  • Placeholder – мы обновили анимации "Мерцание" и "Стереть". Эффект стирания теперь применяется сразу после того, как контент готов.
  • ScalingLazyColumn – мы перенесли ScalingLazyColumn и связанные с ним классы из androidx.wear.compose.material.ScalingLazyColumn в androidx.wear.compose.foundation.lazy.ScalingLazyColumn. Перейдите на версию Foundation.Lazy.
  • SwipeToReveal – мы добавили экспериментальную поддержку раскрытия действий с помощью свайпа в дополнение к существующему способу с долгим нажатием.
  • Stepper – теперь имеет перегрузку с дополнительным параметром enableRangeSemantics, чтобы упростить отключение семантики диапазона по умолчанию.
  • Previews – мы добавили следующие специальные аннотации для предварительного просмотра composable-функций на экранах Wear: WearPreviewSmallRound – предварительный просмотр composable-функции на небольшом круглом устройстве; WearPreviewLargeRound – предварительный просмотр composable-функции на большом круглом устройстве; WearPreviewSquare – предварительный просмотр composable-функции на квадратном устройстве. Также доступны следующие аннотации для предварительного просмотра: WearPreviewFontScales позволяет посмотреть, как компонуемые функции выглядят на устройстве Wear OS с разными размерами шрифта, а WearPreviewDevices – на разных устройствах Wear OS.
  • Мы добавили DefaultTextStyle в Wear Compose, в котором по умолчанию для свойства PlatformTextStyle.includeFontPadding задано значение true (текущая настройка). Это позволит нам синхронизировать отключение отступов шрифтов по умолчанию с библиотеками Compose в ранней альфа-версии 1.3. Дополнительную информацию можно найти в 1.2.0-alpha10.

Новые функции

  • Мы добавили экспериментальную поддержку отключения масштабирования и анимации затухания, когда включен параметр reduce_motion. (I58024)

Исправление ошибок

  • Улучшена документация для angularWidthDp в CurvedSize.kt (Iab75c)
  • SwipeDismissableNavHost теперь регистрирует предупреждение с возможными причинами пустого стека возврата. Это сделано для предотвращения неожиданных сбоев, вызванных исключением IllegalArgumentException, которое возникает, когда пуст стек возврата. (I04a81, b/277700155)

Версия 1.2.0-alpha10

10 мая 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0-alpha10. Версия 1.2.0-alpha10 содержит следующие коммиты:

Новые функции

  • Мы добавили поддержку функции "Пролистывание для показа", которая позволяет выполнять дополнительные действия. Этот способ дополняет существующий способ вызова дополнительных действий – долгое нажатие. (I60862)

Изменения в API

  • Мы добавили RevealScope в композиции действий в SwipeToReveal, чтобы можно было получить доступ к смещению, при котором показываются дополнительные действия. (I3fd56)

Исправление ошибок

  • Исправлена проблема, из-за которой ScalingLazyColumn зависал на Wear API 33 после переключения (Ic4599).
  • Мы улучшили производительность PositionIndicator, чтобы уменьшить количество рывков. (I35e92)
  • Мы исправили ошибку в Chip и CompactChip, из-за которой семантическая роль больше не устанавливалась на Role.Button. (I93f91, b/277326264)

Известные проблемы

  • Мы обнаружили ошибку в Android Studio, из-за которой не удается выполнить предварительный просмотр, если в аннотации используются @WearPreviewDevices и @WearPreviewFontScales. В ближайшее время мы выпустим исправление. Обратите внимание, что другие аннотации для предпросмотра в Wear OS работают в Android Studio Giraffe 2022.3.1 и более поздних версиях.

  • В версии 1.2.0-alpha07 мы добавили DefaultTextStyle в Wear Compose, сохранив существующее значение PlatformTextStyle.includeFontPadding как true. Подробнее о проблеме с отступами шрифтов в Compose… В одной из ранних альфа-версий 1.3 мы изменим DefaultTextStyle, чтобы отключить отступы шрифтов на платформе Android. Это позволит устранить некоторые случаи обрезки текста при большом размере шрифта, а также может повлиять на макеты экранов, поэтому тесты скриншотов нужно будет обновить. Например, при использовании крупного шрифта текст обрезается:

Текст обрезается при большом размере шрифта
Рисунок 1. Текст обрезан.
  • Если отключить отступы шрифта, он исчезнет:
Текст не обрезается при большом размере шрифта
Рисунок 2. Текст не обрезан.

Новый параметр можно использовать уже сейчас, переопределив типографику в теме. Пример кода

Версия 1.2.0-alpha09

19 апреля 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0-alpha09. Версия 1.2.0-alpha09 содержит следующие коммиты:

Изменения в API

  • Добавлен параметр angularSizeDp в API CurvedModifier для настройки угловой ширины в единицах DP (I89a52).

Исправление ошибок

  • Мы исправили проблемы со специальными возможностями в демонстрациях выбора времени(Id0eb7)

Версия 1.2.0-alpha08

5 апреля 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0-alpha08. Версия 1.2.0-alpha08 содержит следующие коммиты:

Изменения в API

  • Мы переименовали ExpandableItemsState в ExpandableState. (If85ea)
  • Мы добавили expandableButton, чтобы упростить создание кнопки, которая сворачивается при раскрытии контента, а также обновили примеры раскрывающихся элементов. (Iae309)

Исправление ошибок

  • Улучшены разворачиваемые примеры, чтобы показать больше возможностей. Изменена анимация expandableItem, чтобы контент оставался в центре во время анимации. (I2f637)
  • Обновлено ToggleControls, чтобы избежать лишних перекомпоновок при ручной анимации цветов с помощью State. (I5d319)

Версия 1.2.0-alpha07

22 марта 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0-alpha07. Версия 1.2.0-alpha07 содержит следующие коммиты:

Изменения в API

  • Мы перенесли компоненты Expandable Item (добавленные в версии 1.2.0-alpha06) из библиотеки Material в библиотеку Foundation, поскольку они не имели значимой связи с MaterialTheme. (Ib0525)

Исправление ошибок

  • Мы исправили сбой, который происходил на экране с использованием PickerGroup, обеспечив правильную обработку фокуса элементом PickerGroup, когда ни один из элементов Picker не имеет фокуса. Также добавлена поддержка прокрутки RSB в демонстрационных версиях выбора. (If8c19)
  • Мы улучшили переходы между диалогами. Теперь переход в начале видео такой же плавный, как и в конце. (Ib5af9)
  • Мы добавили DefaultTextStyle в Wear Compose, в котором по умолчанию для свойства PlatformTextStyle.includeFontPadding задано значение true (текущая настройка). Это позволит нам в будущем синхронизировать отключение отступов шрифтов по умолчанию с библиотеками Compose (подробнее о проблеме отступов шрифтов в Compose). (I2aee8)
  • Отменена зависимость предварительной версии UpsideDownCake через activity-compose, которая блокировала публикацию приложений в Google Play. (I6443d)

Версия 1.2.0-alpha06

8 марта 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0-alpha06. Версия 1.2.0-alpha06 содержит следующие коммиты:

Изменения в API

  • Добавлен компонент CurvedBox, который позволяет размещать компоненты друг над другом в изогнутом мире. (I29200)
  • Добавлены два новых компонента для поддержки группы раскрывающихся элементов в ScalingLazyColumn или одного раскрывающегося элемента, например текста, в котором увеличивается количество строк. (I95dd5)
  • Мы добавили следующие специальные аннотации для предварительного просмотра composable-функций на экранах Wear: WearPreviewSmallRound – для небольшого круглого устройства; WearPreviewLargeRound – для большого круглого устройства; WearPreviewSquare – для квадратного устройства. Также доступны следующие аннотации для предварительного просмотра: WearPreviewFontScales позволяет посмотреть, как компонуемые функции выглядят на устройстве Wear OS с разными размерами шрифта, а WearPreviewDevices – на разных устройствах Wear OS. Чтобы использовать эти предварительные версии, вам понадобится последняя версия Android Studio (Giraffe Canary 6 или более поздняя). Если эти аннотации вам не подходят, вы можете использовать функцию "Предварительный просмотр" и настраивать ее с помощью параметров. (I397ff)
  • Мы пометили HierarchicalFocusCoordinator как экспериментальную библиотеку, поскольку она может быть добавлена в основные библиотеки Compose из-за широкой области применения. (I3a768)

Исправление ошибок

  • Исправлена ошибка на странице HierarchicalFocusCoordinator: если лямбда-функция, переданная в параметре focusEnabled, изменяется, теперь используется новая функция. (Icb353)
  • Мы изменили цвет отключенного контента по умолчанию на "Фон", когда в качестве фона в Button, CompactButton, Chip, CompactChip и ToggleButton используются основные цвета. Это улучшает контрастность для специальных возможностей. (I527cc)

Версия 1.2.0-alpha05

22 февраля 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0-alpha05. Версия 1.2.0-alpha05 содержит следующие коммиты:

Изменения в API

  • Обновлен API PickerGroup, чтобы можно было передавать минимальные ограничения в компонуемый элемент. Если задано значение true, в PickerGroup будут разрешены минимальные ограничения, переданные от родительского компонента. Если задано значение false, PickerGroup сбросит минимальные ограничения. (I3e046)
  • Мы добавили animateScrollToOption в Picker API, чтобы поддерживать программную анимацию для определенного варианта выбора (I6fe67).

Исправление ошибок

  • Мы обновили HorizontalPageIndicator, чтобы поддерживать макеты с ориентацией справа налево. (Ia4359)
  • Добавлены тесты скриншотов для макета с ориентацией справа налево в HorizontalPageIndicator (I6fbb8)
  • В SwipeDismissableNavHostTest добавлены дополнительные тесты, в которых используется TestNavHostController (I61d54).

Версия 1.2.0-alpha04

8 февраля 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0-alpha04. Версия 1.2.0-alpha04 содержит следующие коммиты:

Новые функции

  • PickerGroup для одновременной работы с несколькими элементами выбора с помощью API фокуса. Он позволяет переключаться между разными селекторами, автоматически центрировать их на основе параметров и менять фокус между селекторами при обработке событий из группы. В режиме TalkBack кнопка PickerGroup управляет фокусом TalkBack, перемещая его на выбранный элемент Picker из группы. (I60840)

Изменения в API

  • Мы добавили перегрузку в Stepper с дополнительным параметром enableRangeSemantics, чтобы упростить отключение семантики диапазона по умолчанию (Ia61d4).

Исправление ошибок

  • Разрешить вложенность элемента ScalingLazyColumn на странице с горизонтальной прокруткой (Iec3f8, b/266555016)
  • Улучшение документации Stepper и удаление тестов StepperTest. (Ic118e)
  • Обновлена зависимость androidx.navigation до версии 2.5.3 (If58ed)

Версия 1.2.0-alpha03

25 января 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0-alpha03. Версия 1.2.0-alpha03 содержит следующие коммиты:

Изменения в API

  • Мы перенесли ScalingLazyColumn (и связанные с ним классы) из androidx.wear.compose.material.ScalingLazyColumn в andrdoidx.wear.compose.foundation.lazy.ScalingLazyColumn (см. пример переноса). Новое расположение больше соответствует расположению compose.foundation.lazy.LazyColumn и выглядит более естественно, поскольку не является компонентом Material. Мы вносим эти изменения, чтобы подготовиться к выпуску новой библиотеки Material3, над которой будем работать параллельно с существующей библиотекой Material. (I060e7)

В рамках перехода с Material на Foundation.Lazy в ScalingLazyColumn внесены следующие изменения:

  • API PositionIndicator, предназначенные для работы с материалом ScalingLazyColumn, устарели. Перейдите на версию Foundation.Lazy ScalingLazyColumn. Кроме того, в ScalingLazyListLayoutInfo добавлено поле anchorType. (I29d95)
  • ScalingLazyColumn помечен как устаревший в пакете Wear Compose Material (I16d34)
  • Мы обновили модификатор ScrollAway, чтобы использовать ScalingLazyListState из Wear Compose Foundation.Lazy, и удалили перегрузку, которая принимала ScalingLazyListState из Wear Compose Material. (Ifc42c)
  • Мы обновили Dialog API, чтобы использовать ScalingLazyListState из Foundation.Lazy, и прекратили поддержку перегрузок, в которых использовался Material ScalingLazyListState (Ic8960).
  • Мы обновили Picker API, чтобы использовать ScalingParams из Foundation.Lazy, и прекратили поддержку перегрузок, в которых использовался Material ScalingParams. (Idc3d8)

Исправление ошибок

  • Мы исправили ошибку, из-за которой в ScalingLazyListState.centerItemIndex выполнялись ненужные перекомпоновки. Теперь обновления отправляются только при изменении значения (Ia9f38).
  • Мы улучшили производительность SwipeToDismissBox (I3933b).
  • Добавлены тесты производительности для ScalingLazyColumn в Wear Compose Foundation (Ie00f9).
  • Мы обновили некоторые внутренние методы классов ScalingLazyColumn в Material, чтобы использовать их эквиваленты из Foundation.Lazy (I38aab).
  • Мы исправили некоторые проблемы в тестах Picker и добавили тесты для проверки прокрутки со смещением (I6ac34).
  • Мы перенесли демонстрации интеграции ScalingLazyColumn на Foundation.Lazy вместо Material ScalingLazyColumn (Ic6caa).
  • Мы добавили необязательные параметры fromDate/toDate в демоверсию DatePicker (I961cd).

Версия 1.2.0-alpha02

11 января 2023 г.

Выход androidx.wear.compose:compose-*:1.2.0-alpha02. Версия 1.2.0-alpha02 содержит следующие коммиты:

Изменения в API

  • Теперь при выполнении фреймов для перехода в состояние бездействия (например, с помощью waitForIdle) тесты интерфейса Compose для Android будут выполнять проходы макета для каждого фрейма. Это может повлиять на тесты, которые проверяют отдельные фреймы анимации макета. (I8ea08, b/222093277)
  • Параметр minLines добавлен в Wear Text для обеспечения согласованного поведения с BasicText (I24874)
  • CompactChipTapTargetPadding был сделан общедоступным, чтобы он появлялся в документации (If1e70, b/234119038).

Исправление ошибок

  • Отключить многоплатформенные сборки для пакетов wear.compose (Iad3d7)
  • Исправить документы KDocs для scrollToOption (I6f9a0)
  • Атрибут "PlaceholderState.rememberPlaceholderState()" теперь использует rememberUpdatedState, чтобы статус обновлялся, если используется лямбда-функция onContentReady. (I02635, b/260343754)
  • Мы устранили проблему с дрожанием текста, которая наблюдалась в компоненте Picker, используя новую стратегию композиции, добавленную в Modifier.graphicsLayer. (I99302)
  • Мы исправили ошибку, из-за которой в демонстрационном видео DatePicker (I660bd) наблюдалось мерцание.
  • Мы улучшили специальные возможности для демонстраций выбора даты и времени в 12-часовом формате (I05e12).
  • Мы обновили демонстрационные версии окон выбора даты и времени, чтобы они не затрагивались изменениями RSB, когда не выбраны (I4aecb).

Версия 1.2.0-alpha01

7 декабря 2022 г.

Выход androidx.wear.compose:compose-*:1.2.0-alpha01. Версия 1.2.0-alpha01 содержит следующие коммиты:

Новые функции

  • Мы обновили экспериментальную функцию "Плейсхолдер" так, чтобы эффект "Стирание" применялся сразу после того, как контент будет готов, а не в начале следующего цикла анимации. Мы также обновили анимацию блеска и стирания. (I5a7f4)

Изменения в API

  • Мы добавили HierarchicalFocusCoordinatorcomposable-функцию, которая позволяет отмечать поддеревья композиции как поддерживающие или не поддерживающие фокус.(I827cb)
  • Мы добавили новое свойство, позволяющее переопределить семантическую роль для ToggleButton.(I67132)
  • Мы обновили TimeTextDefaults.TimeFormat12Hours, чтобы удалить AM/PM в TimeText. Это изменит значение по умолчанию для параметров timeSource в API TimeText. (I1eb7f)
  • Мы расширили Picker API, чтобы улучшить доступность экранов с несколькими окнами выбора. Добавлено новое свойство userScrollEnabled, позволяющее управлять тем, активен ли выборщик при прокрутке пользователем. (I3c3aa)

Исправление ошибок

  • Мы изменили ширину границы по умолчанию для OutlinedButton/OutlinedCompactButton с 2 dp на 1 dp, чтобы она соответствовала спецификациям UX. (Icf84d)
  • Чтобы уменьшить эффект первого элемента, добавленного в пустой контейнер ScalingLazyColumn, который появляется при прокрутке, мы добавили оценку autoCentering topPadding, когда контейнер пуст. Теперь размер верхнего отступа рассчитывается на основе предположения, что высота первого элемента равна 0 dp. Для ScalingLazyListAnchorType.ItemStart будет рассчитано правильное верхнее поле, а для ScalingLazyListAnchorType.ItemCenter расчет будет неверным, так как для правильного определения размера содержимого требуется высота элементов, что приведет к небольшому эффекту прокрутки на основе реальной высоты элементов.(I239a4)
  • Мы обновили фон, который применяется к анимации SwipeToDismiss, чтобы он соответствовал платформе Wear. (I9003e)
  • Мы исправили обработку PositionIndicator значений LazyListState и ScalingLazyListState для элементов списка нулевого размера, чтобы избежать ошибок деления на ноль.(Ic28dd)

Версия 1.1

Версия 1.1.2

8 февраля 2023 г.

androidx.wear.compose:compose-foundation:1.1.2, androidx.wear.compose:compose-material:1.1.2 и androidx.wear.compose:compose-navigation:1.1.2. Версия 1.1.2 содержит следующие коммиты:

Исправление ошибок

  • Мы исправили ошибку, из-за которой в ScalingLazyListState.centerItemIndex выполнялись ненужные перекомпоновки. Теперь обновления отправляются только при изменении значения (Ia9f38).

Версия 1.1.1

11 января 2023 г.

androidx.wear.compose:compose-foundation:1.1.1, androidx.wear.compose:compose-material:1.1.1 и androidx.wear.compose:compose-navigation:1.1.1. Версия 1.1.1 содержит следующие коммиты:

Исправление ошибок

  • Атрибут "PlaceholderState.rememberPlaceholderState()" теперь использует rememberUpdatedState, чтобы статус обновлялся, если используется лямбда-функция onContentReady. (I02635, b/260343754)

Версия 1.1.0

7 декабря 2022 г.

androidx.wear.compose:compose-foundation:1.1.0, androidx.wear.compose:compose-material:1.1.0 и androidx.wear.compose:compose-navigation:1.1.0. Версия 1.1.0 содержит следующие коммиты:

Важные изменения с версии 1.0.0

  • Стабильная версия Compose для Wear OS 1.1.0 (подробнее).
  • Список основных изменений в Wear Compose 1.1 можно найти в примечаниях к выпуску Compose for Wear OS 1.1 Beta01.

Новые функции

  • Мы обновили экспериментальную функцию "Плейсхолдер" так, чтобы эффект "Стирание" применялся сразу после того, как контент будет готов, а не в начале следующего цикла анимации. Мы также обновили анимацию блеска и стирания. (I5a7f4)

Исправление ошибок

  • Мы изменили ширину границы по умолчанию для OutlinedButton/OutlinedCompactButton с 2 dp на 1 dp, чтобы она соответствовала спецификациям UX. (Icf84d)
  • Чтобы уменьшить эффект первого элемента, добавленного в пустой контейнер ScalingLazyColumn, который появляется при прокрутке, мы добавили оценку autoCentering topPadding, когда контейнер пуст. Теперь размер верхнего отступа рассчитывается на основе предположения, что высота первого элемента равна 0 dp. Для ScalingLazyListAnchorType.ItemStart будет рассчитано правильное верхнее поле, а для ScalingLazyListAnchorType.ItemCenter расчет будет неверным, так как для правильного определения размера содержимого требуется высота элементов, что приведет к небольшому эффекту прокрутки на основе реальной высоты элементов.(I239a4)
  • Мы обновили фон, применяемый к анимации SwipeToDismiss, чтобы он соответствовал платформе Wear.(I9003e)
  • Мы исправили обработку PositionIndicator значений LazyListState и ScalingLazyListState для элементов списка нулевого размера, чтобы избежать ошибок деления на ноль.(Ic28dd)

Версия 1.1.0-rc01

9 ноября 2022 г.

androidx.wear.compose:compose-foundation:1.1.0-rc01, androidx.wear.compose:compose-material:1.1.0-rc01 и androidx.wear.compose:compose-navigation:1.1.0-rc01. Версия 1.1.0-rc01 содержит следующие коммиты:

Исправление ошибок

  • Мы добавили правила для базовых профилей Placeholders, ScrollAway, RadioButton, Switch, Checkbox, OutlinedButton, OutlinedCompactButton, OutlinedChip и OutlinedCompactChip. (I8249c)
  • Мы исправили ошибку в Modifier.scrollAway, из-за которой, если указанный элемент itemIndex был недопустимым (например, если индекс элемента выходил за пределы диапазона), то TimeText не показывался. (I2137a)
  • Мы обновили SwipeToDismissBox, чтобы она соответствовала реализации на платформе. После анимации сжатия экран теперь сдвигается вправо, когда срабатывает закрытие. (I41d34)
  • Мы оптимизировали код и теперь Modifier.scrollAway считывает только scrollState внутри блока measure, чтобы не перекомпоновывать модификатор после каждого повторного измерения. (I4c6f1)
  • Мы добавили в документацию и примеры плейсхолдеров информацию о том, как правильно указывать свойства Modifier.placeholder и Modifier.placeholderShimmer, если они применяются к одному и тому же composable-функции. (Ie96f4, b/256583229)
  • Мы изменили ширину границы по умолчанию для OutlinedCompactChip/OutlinedChip с 2 dp на 1 dp, чтобы она соответствовала спецификациям UX. (Ib3d8e)
  • Мы исправили ошибку в rememberPickerState, из-за которой не сохранялись обновленные входные данные, поэтому после их изменения не обновлялись композиции. (I49ff6, b/255323197)
  • Мы обновили интерфейс плейсхолдеров: 1) изменили градиент свечения на 1,5 размера экрана; 2) добавили смягчение (кубическую кривую Безье) для прогресса свечения; 3) ускорили анимацию стирания (250 мс). (Id29c1)
  • Мы исправили ошибку в интерфейсе, из-за которой фон чипа и карточки в эффекте wipeOff удалялся немного раньше, чем нужно, поскольку не учитывалось положение компонента на экране. (I2c7cb)
  • Мы обновили отрисовку фона плейсхолдера, чтобы цвета смешивались, а не накладывались друг на друга. Это позволит снизить риск альфа-смешивания разных обрезанных слоев, из-за которого цвета фона плейсхолдера могут просвечивать. (I2ea26)
  • Мы исправили расчет ScalingLazyListState.centerItemIndex/centerItemOffset, чтобы, если два объекта находятся по обе стороны от центральной линии области просмотра, ближайший из них считался centerItem. (I30709, b/254257769)
  • Мы исправили ошибку в ScalingLazyListState.layoutInfo.visibleItemsInfo, из-за которой при инициализации ScalingLazyColumn передавались неверные смещения. Теперь пустой список будет возвращаться до тех пор, пока все элементы списка не станут видимыми и не будут иметь правильные смещения. Проверка ScalingLazyListState.layoutInfo.visibleItemsInfo.isNotEmpty() подтвердит, что инициализация ScalingLazyColumn завершена и объекты видны. (I3a3b8)

Версия 1.1.0-beta01

24 октября 2022 г.

androidx.wear.compose:compose-foundation:1.1.0-beta01, androidx.wear.compose:compose-material:1.1.0-beta01 и androidx.wear.compose:compose-navigation:1.1.0-beta01. Версия 1.1.0-beta01 содержит следующие коммиты:

Что нового в Compose для Wear OS 1.1

В версии 1.1.0-beta01 библиотеки Compose для Wear OS указано, что в ней реализованы все функции и API заблокирован.

  • В Wear Compose 1.1 добавлены следующие новые функции:
    • Улучшения специальных возможностей в инструменте выбора, чтобы экраны с несколькими вариантами выбора были доступны для навигации с помощью программ чтения с экрана, а описание контента было доступно.
    • Параметр Picker contentDescription теперь используется только для выбранного варианта Picker и принимает строку, допускающую значение NULL (в предыдущем коммите нужно было передать сопоставление варианта с описанием контента, но использовался только выбранный вариант).
    • Элементы выбора теперь всегда выравниваются по центру. Исправлена ошибка, из-за которой установка значения 0 для параметра gradientRatio приводила к изменению выравнивания.
    • Chip/ToggleChip – мы обновили градиенты по умолчанию для Chip/ToggleChip, чтобы привести их в соответствие с последними спецификациями UX. Теперь ChipDefaults.gradientBackgroundChipColors начинается с 50% основного цвета, а не с 32,5%.
    • Chip/ToggleChip - Added overloads for modifying Chip shapes
    • Chip/Button/ToggleButton – добавлен новый стиль с контуром для чипов и кнопок, а также новые композиции OutlinedChip и OutlinedButton, которые обеспечивают прозрачный Chip/Button с тонкой границей.
    • Карточка. Обновлены градиенты по умолчанию для карточек в соответствии с последними спецификациями UX. CardDefaults.cardBackgroundPainter теперь начинается с 30% основного цвета и заканчивается 20% цвета onSurfaceVariant (ранее было 20% и 10% onSurfaceVariant). ToggleChip.toggleChipColors теперь представляет собой не линейный градиент от 75% цвета поверхности до 32,5% основного цвета, а градиент от 0% цвета поверхности до 50% основного цвета.
    • Button/ToggleButton – добавлены свойства для изменения формы кнопок.
    • Тема. Обновлены некоторые цвета по умолчанию в MaterialTheme, чтобы улучшить доступность. Исходные цвета были недостаточно контрастными, поэтому пользователям было сложно отличить фон чипа, карточки или кнопки от фона темы.
    • InlineSlider/Stepper – добавлены роли кнопок, чтобы Talkback мог распознавать их как кнопки.
    • Каркас PositionIndicator теперь расположен и имеет размер, необходимые для его работы. Например, если к нему добавить семантическую информацию, TalkBack будет правильно определять границы элемента PositionIndicator на экране.
    • CurvedText/TimeText – добавлен метод Modifier.scrollAway, который прокручивает элемент по вертикали, чтобы он появился или исчез из видимой области экрана, в зависимости от состояния прокрутки (с перегрузками для работы с Column, LazyColumn и ScalingLazyColumn). Метод ScrollAway обычно используется для прокрутки элемента TimeText за пределы видимой области экрана, когда пользователь начинает прокручивать список элементов вверх.
    • CurvedText/TimeText – добавлена поддержка свойств fontFamily, fontStyle и fontSynthesis в структурированных данных CurvedTextStyle, которые можно использовать на страницах curvedText и basicCurvedText.
    • CurvedText/TimeText – добавлен fontWeight в конструктор и метод копирования в CurvedTextStyle.
    • ToggleControls – добавлены анимированные переключатели Checkbox, Switch и RadioButton для использования с ToggleChip и SplitToggleChip. Их можно использовать вместо статических значков, предоставленных ToggleChipDefaults (switchIcon, checkboxIcon и radioIcon).
    • Плейсхолдер – добавлена поддержка экспериментальных плейсхолдеров. Это три разных визуальных эффекта, которые работают вместе.
    • Во-первых, это эффект кисти, используемый в контейнерах, таких как чипы и карточки, для рисования поверх обычного фона, когда контент ещё не загружен.
    • Во-вторых, модификатор (Modifier.placeholder()), чтобы нарисовать виджет-заглушку в форме стадиона поверх загружаемого контента.
    • Третий эффект – градиент или мерцание (Modifier.placeholderShimmer()), который накладывается поверх остальных эффектов, чтобы показать пользователям, что мы ждем загрузки данных.
      • Все эти эффекты должны быть скоординированы и исчезать в определенном порядке.
  • Основные зависимости Compose обновлены с версии 1.2 до 1.3

Изменения в API

  • Параметры шрифта (fontFamily, fontWeight, fontStyle и fontSynthesis) теперь можно указывать непосредственно как параметры curvedText (Idc422).

Исправление ошибок

  • curveText и basicCurvedText теперь будут правильно работать с TalkBack (у них есть правильно размещенный, но пустой узел compose-ui, связанный с ними, в котором текст используется как описание контента) (I7af7c, b/210721259).
  • Исправлена ошибка в Picker, когда PickerState.repeatedItems = false, чтобы добавить явную настройку параметров autoCentering во внутренний ScalingLazyColumn выбора, чтобы можно было прокрутить нулевой вариант до центра представления. (I8a4d7)

Версия 1.1.0-alpha07

5 октября 2022 г.

androidx.wear.compose:compose-foundation:1.1.0-alpha07, androidx.wear.compose:compose-material:1.1.0-alpha07 и androidx.wear.compose:compose-navigation:1.1.0-alpha07. Версия 1.1.0-alpha07 содержит следующие коммиты:

Новые функции

  • Мы добавили экспериментальную поддержку плейсхолдеров. Это три разных визуальных эффекта, которые работают вместе. Во-первых, это эффект кисти, используемый в контейнерах, таких как чипы и карточки, для рисования поверх обычного фона, когда контент ещё не загружен. Во-вторых, модификатор (Modifier.placeholder()), чтобы нарисовать виджет-заглушку в форме стадиона поверх загружаемого контента. Третий эффект – градиент или мерцание (Modifier.placeholderShimmer()), который накладывается поверх остальных эффектов, чтобы показать пользователям, что мы ждем загрузки данных. Все эти эффекты должны быть скоординированы и исчезать в определенном порядке. (I3c339)

Изменения в API

  • Добавлена поддержка fontWeight, fontFamily, fontStyle и fontSynthesis в CurvedTextStyle, доступная на устройствах curvedText и basicCurvedText. Эти параметры можно использовать, чтобы указать шрифт и стиль для изогнутого текста.Iaa1a8, I72759
  • Параметр смещения Modifier.scrollAway теперь измеряется в единицах dp, чтобы соответствовать параметру Modifier.offset (ранее он измерялся в пикселях). Также код был переработан как LayoutModifier для повышения эффективности. (I9f94b)
  • В рамках нового API для переключателей мы переименовали RadioButton’s circleColor в ringColor. (I28fa9)
  • Мы добавили анимированные переключатели Checkbox, Switch и RadioButton для использования с ToggleChip и SplitToggleChip. Их можно использовать вместо статических значков, предоставляемых ToggleChipDefaults (switchIcon, checkboxIcon и radioIcon). (I8a8c4)

Версия 1.1.0-alpha06

21 сентября 2022 г.

androidx.wear.compose:compose-foundation:1.1.0-alpha06, androidx.wear.compose:compose-material:1.1.0-alpha06 и androidx.wear.compose:compose-navigation:1.1.0-alpha06. Версия 1.1.0-alpha06 содержит следующие коммиты:

Новые функции

  • Мы добавили Modifier.scrollAway, который прокручивает элемент по вертикали в видимую область или из нее в зависимости от состояния прокрутки (с перегрузками для работы с Column, LazyColumn и ScalingLazyColumn). ScrollAway обычно используется для прокрутки TimeText из видимой области, когда пользователь начинает прокручивать список элементов вверх. (I61766)

Исправление ошибок

  • Теперь PositionIndicator занимает только необходимое пространство. Это полезно, например, если к нему добавляется семантическая информация, TalkBack получает правильные границы элемента PositionIndicator на экране. (Ie6106, b/244409133)

Версия 1.1.0-alpha05

7 сентября 2022 г.

androidx.wear.compose:compose-foundation:1.1.0-alpha05, androidx.wear.compose:compose-material:1.1.0-alpha05 и androidx.wear.compose:compose-navigation:1.1.0-alpha05. Версия 1.1.0-alpha05 содержит следующие коммиты:

Исправление ошибок

  • В InlineSlider и Stepper добавлены роли кнопок, чтобы TalkBack мог распознавать их как кнопки. (Icb46c, b/244260275)
  • Мы исправили порядок расположения индикаторов позиции и страницы в Scaffold. Теперь индикаторы будут располагаться поверх виньетки, поэтому она не будет их закрывать. (Ib988f, b/244207528)

Версия 1.1.0-alpha04

24 августа 2022 г.

androidx.wear.compose:compose-foundation:1.1.0-alpha04, androidx.wear.compose:compose-material:1.1.0-alpha04 и androidx.wear.compose:compose-navigation:1.1.0-alpha04. Версия 1.1.0-alpha04 содержит следующие коммиты:

Изменения в API

  • Мы изменили некоторые цвета по умолчанию в MaterialTheme, чтобы улучшить доступность. Исходные цвета были недостаточно контрастными, поэтому пользователям было сложно отличить фон чипа, карточки или кнопки от фона темы. Изменились цвета surface(0xFF202124 -> 0xFF303133), onPrimary(0xFF202124 -> 0xFF303133), onSecondary(0xFF202124 -> 0xFF303133), primaryVariant(0xFF669DF6 -> 0xFF8AB4F8) и onError(0xFF202124 -> 0xFF000000). Изменения цветов, хотя и незначительные, могут повлиять на существующие тесты скриншотов. (81ab09)

Исправление ошибок

  • Исправлена логическая ошибка в ScalingLazyColumn, из-за которой списки с небольшим количеством элементов (обычно двумя) не инициализировались и становились прозрачными. (504347)

Версия 1.1.0-alpha03

10 августа 2022 г.

androidx.wear.compose:compose-foundation:1.1.0-alpha03, androidx.wear.compose:compose-material:1.1.0-alpha03 и androidx.wear.compose:compose-navigation:1.1.0-alpha03. Версия 1.1.0-alpha03 содержит следующие коммиты.

Новые функции

  • Мы добавили новый стиль с контуром для Chips и Buttons, а также новые композиции OutlinedChip и OutlinedButton, которые обеспечивают прозрачность Chip/Button с тонкой рамкой. (Id5972)

Изменения в API

  • Добавлены перегрузки для изменения формы кнопки (Icccde)

Исправление ошибок

  • Мы исправили размер области переключателя ToggleChip, так как он не соответствовал спецификации UX. Согласно спецификации UX, между ярлыком и областью значка переключателя размером 24 x 24 dp должен быть отступ в 4 dp, поэтому общая ширина должна составлять 28 dp. Однако в реализации неправильно задана область переключения 36x24.dp. В результате полезная область для текстовой метки уменьшается на 8 dp. ПРИМЕЧАНИЕ. Исправление этой ошибки увеличивает место для текстовой метки и, как следствие, может положительно повлиять на макет текста, который не помещается в отведенное пространство. Если у вас есть тесты со скриншотами, в которых используется ToggleChips, их может потребоваться обновить. (I514c8, b/240548670)

Версия 1.1.0-alpha02

27 июля 2022 г.

androidx.wear.compose:compose-foundation:1.1.0-alpha02, androidx.wear.compose:compose-material:1.1.0-alpha02 и androidx.wear.compose:compose-navigation:1.1.0-alpha02. Версия 1.1.0-alpha02 содержит следующие коммиты:

Новые функции

  • Мы переключили зависимости Compose для Wear OS от основных библиотек Compose с версии 1.2.0 на 1.3.0-alpha0X.

Изменения в API

  • Добавлены перегрузки для изменения формы чипов (I02e87)

Исправление ошибок

  • Мы добавили анимацию для виньетки при показе и скрытии диалогового окна, чтобы она соответствовала существующей анимации масштабирования. (Ida33e)
  • Мы исправили ошибку, из-за которой при прокрутке с помощью жеста "смахивание" в некоторых случаях могло произойти деление на ноль. (I86cb6)
  • Исправлена ошибка в ChipDefaults.childChipColor(): теперь отключенный цвет фона полностью прозрачен. (I2b3c3, b/238057342)

Версия 1.1.0-alpha01

29 июня 2022 г.

androidx.wear.compose:compose-foundation:1.1.0-alpha01, androidx.wear.compose:compose-material:1.1.0-alpha01 и androidx.wear.compose:compose-navigation:1.1.0-alpha01. Версия 1.1.0-alpha01 содержит следующие коммиты:

Изменения в API

  • Параметр contentDescription теперь используется только для выбранного варианта и принимает строку, допускающую значение NULL (ранее нужно было передавать сопоставление варианта с описанием контента, но использовался только выбранный вариант). (Ife6a7)
  • Мы улучшили специальные возможности в окне выбора, чтобы экраны с несколькими вариантами выбора были доступны для программ чтения с экрана, а описание контента было доступно (I64edb).

Исправление ошибок

  • Мы обновили правила базового профиля, входящие в состав библиотеки Wear Compose (I9c694).
  • Мы исправили направление градиента для чипов в режиме письма справа налево. Было: слева сверху > справа снизу. Стало: справа сверху > слева снизу. (Ic2e77)
  • Мы обновили градиенты по умолчанию для Chip/ToggleChip/Card, чтобы привести их в соответствие с последними спецификациями UX. ChipDefaults.gradientBackgroundChipColors теперь начинается с 50% основного цвета, а не с 32,5%. CardDefaults.cardBackgroundPainter теперь начинается с 30% основного цвета и заканчивается 20% цвета onSurfaceVariant (ранее было 20% и 10% onSurfaceVariant). ToggleChip.toggleChipColors теперь представляет собой не линейный градиент от 75% поверхностного цвета до 32,5% основного цвета, а градиент от 0% поверхностного цвета до 50% основного цвета. (I43bbd)
  • Мы добавили цвет фона (MaterialTheme.color.surface) за значками Chip/ToggleChips с градиентным фоном, чтобы они были хорошо видны, если за ними будет светлый фон. (Ibe1a4, b/235937657)
  • Элементы выбора теперь всегда выравниваются по центру. Исправлена ошибка, из-за которой установка значения 0 для параметра gradientRatio приводила к изменению выравнивания. (I712b8)

Версия 1.0

Версия 1.0.2

7 сентября 2022 г.

androidx.wear.compose:compose-foundation:1.0.2, androidx.wear.compose:compose-material:1.0.2 и androidx.wear.compose:compose-navigation:1.0.2. Версия 1.0.2 содержит следующие коммиты:

Исправление ошибок

  • Мы исправили порядок расположения индикаторов позиции и страницы в Scaffold. Теперь индикаторы будут располагаться поверх виньетки, поэтому она не будет их закрывать. (Ib988f, b/244207528)

Версия 1.0.1

24 августа 2022 г.

androidx.wear.compose:compose-foundation:1.0.1, androidx.wear.compose:compose-material:1.0.1 и androidx.wear.compose:compose-navigation:1.0.1. Версия 1.0.1 содержит следующие коммиты:

Исправление ошибок

  • Исправлена логическая ошибка в ScalingLazyColumn, из-за которой списки с небольшим количеством элементов (обычно двумя) не инициализировались и становились прозрачными. (076c61)

Версия 1.0.0

27 июля 2022 г.

androidx.wear.compose:compose-foundation:1.0.0, androidx.wear.compose:compose-material:1.0.0 и androidx.wear.compose:compose-navigation:1.0.0. Версия 1.0.0 содержит следующие коммиты:

Основные функции версии 1.0.0

  • Это первый стабильный выпуск Compose для Wear OS (подробнее…).
  • Compose for Wear OS основан на основных библиотеках Compose и предоставляет дополнительные компоненты для носимых устройств, а также альтернативные реализации основных компонентов Compose, адаптированные для таких устройств.
  • Список ключевых компонентов Wear Compose можно найти в примечаниях к выпуску Compose for Wear OS Beta01.

Исправление ошибок

  • Мы добавили анимацию для виньетки при показе и скрытии диалогового окна, чтобы она соответствовала существующей анимации масштабирования. (Ida33e)
  • Мы исправили ошибку, из-за которой при прокрутке с помощью жеста "смахивание" в некоторых случаях могло произойти деление на ноль. (I86cb6)
  • Исправлена ошибка в ChipDefaults.childChipColor(): теперь отключенный цвет фона полностью прозрачен. (I2b3c3, b/238057342)

Версия 1.0.0-rc02

22 июня 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-rc02, androidx.wear.compose:compose-material:1.0.0-rc02 и androidx.wear.compose:compose-navigation:1.0.0-rc02. Версия 1.0.0-rc02 содержит следующие коммиты:

Исправление ошибок

  • Мы исправили направление градиента для карточек в режиме RTL. Раньше он был направлен из верхнего левого угла в нижний правый, а теперь – из верхнего правого в нижний левый. (Ic2e77)
  • Мы обновили градиенты по умолчанию для Chip/ToggleChip/Card, чтобы привести их в соответствие с последними спецификациями UX. Теперь ChipDefaults.gradientBackgroundChipColors начинается с 50% основного цвета, а не с 32,5%. CardDefaults.cardBackgroundPainter теперь начинается с 30% основного цвета и заканчивается 20% цвета onSurfaceVariant (ранее использовались значения 20% и 10% для цвета onSurfaceVariant). ToggleChip.toggleChipColors меняется с линейного градиента от 75% поверхности до 32,5% основного цвета до 0% поверхности до 50% основного цвета. (I43bbd)
  • Мы добавили фоновый цвет (MaterialTheme.color.surface) за значками Chip/ToggleChips с градиентным фоном, чтобы они были хорошо видны, если за ними будет светлый цвет. (Ibe1a4, b/235937657)
  • Мы обновили правила базового профиля, входящие в состав библиотеки Wear Compose (I9c694).

Версия 1.0.0-rc01

15 июня 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-rc01, androidx.wear.compose:compose-material:1.0.0-rc01 и androidx.wear.compose:compose-navigation:1.0.0-rc01. Версия 1.0.0-rc01 содержит следующие коммиты:

Изменения в API

  • Интерфейсы в библиотеках Compose теперь создаются с помощью методов интерфейса по умолчанию из JDK8 (I5bcf1).

Исправление ошибок

  • Мы удалили явный вызов fillMaxWidth() в заголовке списка, поскольку он не нужен и может привести к проблемам, если в ScalinglazyColumn есть компоненты ListHeader() и Chip(), так как ширина будет увеличиваться или уменьшаться при прокрутке элементов ListHeader. (I37144, b/235074035)
  • Мы исправили ошибку в ScalingLazyColumn, из-за которой элементы списка могли отображаться некорректно до прокрутки, если нулевой элемент списка был достаточно большим (включая отступы) (Ic6159, b/234328517).
  • Мы немного изменили ScalingLazyColumn смягчение, когда объекты достигают края экрана, чтобы соответствовать обновленным спецификациям UX. Старые значения CubicBezierEasing(0.25f, 0.00f, 0.75f, 1.00f) -> новые значения CubicBezierEasing(0.3f, 0f, 0.7f, 1f). Чтобы сохранить прежнее поведение, можно переопределить scalingParams для ScalingLazyColumn (Ie375c).
  • Мы добавили отступы к значку CompactChip, чтобы его область нажатия соответствовала требованиям Material Design и была не менее 48 dp в высоту. Это может повлиять на макеты, в которых используется CompactChips, поскольку они будут занимать больше места. (I3d57c)

Версия 1.0.0-beta03

1 июня 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-beta03, androidx.wear.compose:compose-material:1.0.0-beta03 и androidx.wear.compose:compose-navigation:1.0.0-beta03. Версия 1.0.0-beta03 содержит следующие коммиты:

Новые функции

  • Мы добавили поддержку ScalingLazyColumn в режиме Compose @Preview. (I3b3b6, b/232947354)

Изменения в API

  • Мы изменили значение по умолчанию для свойства ScalingLazyColumn.horizontalAlignment с "Начало" на CenterHorizontally, чтобы элементы списка, которые не занимают всю ширину столбца, выравнивались для максимальной видимости. Чтобы вернуться к предыдущему поведению, задайте значение horizontalAlignment = Alignment.Start.(I9ed4b)

Известные проблемы

  • Высота области нажатия/касания CompactChip меньше, чем указано в руководстве по обеспечению доступности Material. Эта ошибка будет исправлена в следующем выпуске (15 июня). Если вы используете CompactChip, это повлияет на макеты, поскольку у CompactChip теперь будут дополнительные отступы сверху и снизу. Измените и протестируйте макеты или ознакомьтесь с комментариями к ошибке, чтобы узнать, как использовать существующее поведение. (b/234332135)

Исправление ошибок

  • Новая демонстрация добавления или удаления текста в начале TimeText. (I16d75)
  • Добавьте тесты для HorizontalPageIndicator.PagesState (I64ed0)
  • Обновление TimeText в соответствии со спецификациями UX (Ib7ea1)

Версия 1.0.0-beta02

18 мая 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-beta02, androidx.wear.compose:compose-material:1.0.0-beta02 и androidx.wear.compose:compose-navigation:1.0.0-beta02. Версия 1.0.0-beta02 содержит следующие коммиты:

Новые функции

  • Теперь выборщик всегда реагирует на события прокрутки, даже если он находится в режиме только чтения. Это позволит пользователям прокручивать экран, не выбирая сначала элемент Picker. В режиме только чтение варианты, отличные от выбранного, скрыты с помощью элемента shim в gradientColor. (I72925)
  • Мы изменили поведение Chip/ToggleChip/CompactChip/SplitToggleChip, чтобы по умолчанию они не выполняли fillMaxWidth. Они будут увеличиваться по мере добавления контента. Чтобы сохранить прежнее поведение, просто добавьте modifier = Modifier.fillMaxWidth()(I60a2c, b/232206371).

Исправление ошибок

  • Конструктор CurvedTextStyle, принимающий TextStyle, теперь также учитывает fontWeight(в будущих версиях API это может быть добавлено в конструктор и методы копирования) (Ieebb9)
  • Улучшено проведение пальцем от края экрана. Если используется Modifier.edgeSwipeToDismiss и при проведении пальцем влево от края экрана направление меняется направо, то функция "Провести, чтобы закрыть" больше не срабатывает. Ранее можно было закрыть уведомление, проведя влево, а затем вправо.(I916ea)
  • HorizontalPageIndicator теперь показывает на экране до шести страниц. Если страниц больше шести, слева или справа показывается индикатор половинного размера с плавным переходом между страницами.I2ac29
  • Улучшено поведение по умолчанию при закреплении окон на экранах ScalingLazyColumn и Picker (I49539)
  • Улучшено проведение пальцем от края экрана. При использовании Modifier.edgeSwipeToDismiss закрытие по свайпу срабатывает только в том случае, если первое касание приходится на край экрана и выполняется свайп вправо. Раньше закрытие по свайпу можно было активировать, проведя пальцем по любой части экрана, если прокрутка достигала начала.(I8ca2a)

Версия 1.0.0-beta01

11 мая 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-beta01, androidx.wear.compose:compose-material:1.0.0-beta01 и androidx.wear.compose:compose-navigation:1.0.0-beta01. Версия 1.0.0-beta01 содержит следующие коммиты:

Что входит в Compose для Wear OS 1.0

Выпуск 1.0.0-beta01 Compose для Wear OS – важный этап, поскольку библиотека теперь содержит все необходимые функции, а API заблокирован.

В версии 1.0 Wear Compose Material доступны следующие компоненты:

  • Тема Material Theme используется вместо Compose for Mobile MaterialTheme и предоставляет цвета, формы и типографику для создания компонентов на носимых устройствах, которые реализуют UX-руководства по Material Design Wear.
  • Button, CompactButton и ToggleButton – кнопка с одним слотом для значка, изображения или короткого текста (не более трех символов). Круглый, с рекомендуемыми размерами для кнопок по умолчанию, больших и маленьких. CompactButton – это один слот для любого контента (значка, изображения или текста) круглой формы с очень маленьким фоном. CompactButton имеет необязательные прозрачные поля вокруг фона, которые увеличивают область, доступную для нажатия. ToggleButton – это кнопка с одним слотом для любого контента (короткого текста, значка или изображения). У нее есть два состояния (включено и выключено), которые обозначаются цветом и разными значками.
  • Карточки – используются для показа информации о приложениях, например уведомлений. Гибкий дизайн для разных вариантов использования с помощью AppCard и TitleCard, которые позволяют создавать разные макеты и добавлять изображения в качестве содержимого карточек или фона.
  • Чипы – это компоненты в форме стадиона, похожие на кнопки, но с большей площадью и несколькими слотами для ярлыков, дополнительных ярлыков и значков. разных размеров и с поддержкой изображений в качестве фона.
  • ToggleChips и SplitToggleChips – чип с установленным или снятым флажком и добавлением слота ToggleControl для показа значка, например переключателя или радиокнопки, чтобы показать состояние компонента. Кроме того, у значка SplitToggleChip есть две области, на которые можно нажать: одна для клика, а другая для переключения.
  • CircularProgressIndicator – индикатор выполнения Wear Material с двумя вариантами. Первый вариант показывает, насколько выполнена текущая задача, и поддерживает разрыв в круговой дорожке между начальным и конечным углами. Второй индикатор показывает неопределенный прогресс в течение неопределенного времени ожидания.
  • curvedText – часть DSL, которая вместе с curvedRow и curvedColumn используется для описания CurvedLayouts и размещения компонентов на круглых устройствах. Подробнее о CurvedLayout и CurvedModifier (они выполняют ту же роль, что и модификаторы в обычном мире, и позволяют настраивать различные аспекты макета, отступы, градиенты и т. д.) рассказывается в разделе "Основы компонентов Wear" ниже.
  • Диалоговое окно, оповещение и подтверждение. Диалоговое окно отображается на весь экран поверх любого другого контента и поддерживает закрытие с помощью жеста пролистывания. Он занимает один слот, в котором должен быть контент диалогового окна Wear Material, например оповещение или подтверждение. Уведомление – это диалоговое окно с определенным мнением, в котором есть места для значка, заголовка и сообщения. У него есть перегрузки для двух кнопок (отрицательной и положительной), расположенных рядом, или для одного или нескольких чипов, расположенных вертикально. Подтверждение – это диалоговое окно с мнением, в котором сообщение показывается в течение заданного времени. В нем есть место для значка или изображения (в том числе анимированного).
  • HorizontalPageIndicator – показывает положение страницы по горизонтали в соответствии с форм-фактором носимого устройства. Занимает весь экран и показывает изогнутый индикатор на круглых устройствах. Можно использовать с программой просмотра страниц Accompanist.
  • Значок – реализация значка Wear, в которой цвет и альфа-канал берутся из темы Wear Material. Если вам нужен значок, на который можно нажать, выберите "Кнопка" или "Чип".
  • Выбор элемента из списка с возможностью прокрутки. По умолчанию элементы повторяются бесконечно в обоих направлениях. Может быть показан в режиме "Только чтение", чтобы скрыть невыбранные варианты.
  • PositionIndicator – показывает позицию прокрутки или другую позиционную информацию в формате, подходящем для носимого устройства. Занимает весь экран. На круглых устройствах отображается изогнутый индикатор.
  • Scaffold – реализует базовую визуальную структуру макета Wear Material Design. Этот компонент предоставляет API для объединения нескольких компонентов Wear Material (например, TimeText, PositionIndicator и Vignette) при создании экрана, обеспечивая правильную стратегию макета и собирая необходимые данные, чтобы эти компоненты работали вместе корректно.
  • ScalingLazyColumn – компонент списка с прокруткой и масштабированием/эффектом рыбьего глаза, который является ключевой частью языка дизайна Wear Material Design. Позволяет масштабировать объекты и применять к ним эффекты прозрачности. ScalingLazyColumn может обрабатывать большое количество объектов контента, которые создаются и объединяются только при необходимости.
  • Ползунок позволяет выбрать значение из диапазона. Диапазон вариантов выбора представлен в виде полосы, которую можно разделить на сегменты.
  • Пошаговый элемент – полноэкранный компонент, который позволяет пользователям выбирать значения из диапазона с помощью кнопок увеличения и уменьшения в верхней и нижней части экрана. В середине есть слот для текста или чипа.
  • SwipeToDismissBox – обрабатывает жест смахивания, скрывающий окно. Для фона (показывается только при пролистывании) и контента переднего плана используется один слот. Можно использовать вместе с библиотекой навигации androidx, добавив SwipeDismissableNavHost (см. раздел "Библиотека навигации Wear Compose" ниже).
  • Текст – реализация компонента Compose Material Text для Wear, в которой цвет и альфа-канал берутся из темы Wear Material.
  • TimeText – компонент, который показывает время и статус приложения в верхней части экрана. Адаптируется к форме экрана, используя изогнутый текст на круглых экранах.
  • Виньетка – это элемент оформления экрана, который используется в Scaffold и размывает верхнюю и нижнюю части экрана, когда пользователь прокручивает контент.

  • Также включены следующие компоненты из Wear Compose Foundation:

  • CurvedLayout - Wear Foundation CurvedLayout – это composable-функция макета, которая размещает дочерние элементы по дуге, поворачивая их при необходимости. Это похоже на макет "Строка", изогнутый в сегмент кольца. Обратите внимание, что содержимое CurvedLayout не является композиционной лямбда-функцией, а представляет собой DSL (язык, ориентированный на определенную область). Все элементы в DSL CurvedLayout поддерживают необязательный параметр модификатора, созданный из CurvedModifier.

  • basicCurvedText – элемент в CurvedLayout DSL, basicCurvedText, который позволяет разработчикам легко создавать текст, изогнутый по окружности (обычно по краю круглого экрана). basicCurvedText можно создать только в CurvedLayout, чтобы обеспечить оптимальное качество, например возможность указать позицию и использовать CurvedModifiers. Обратите внимание, что в большинстве случаев следует использовать curvedText, поскольку он поддерживает темы Material.

  • curvedComposable – функция, которая позволяет использовать обычный контент с элементом CurvedLayout. Если в элементе curvedComposable несколько элементов, они будут нарисованы друг поверх друга (как в элементе Box). Чтобы разместить несколько объектов вдоль кривой, оберните каждый из них в curvedComposable.

  • curvedRow и curvedColumn – аналоги Row и Column. Элементы curvedRow и curvedColumn можно вложить в CurvedLayout, чтобы расположить элементы нужным образом. Для curvedRow можно указать направление углового макета и радиальное выравнивание. Для curvedColumn можно указать угловое выравнивание и радиальное направление.

  • CurvedModifier – все компоненты с изогнутыми краями принимают параметр модификатора, который можно создать с помощью CurvedModifier. Поддерживаются следующие параметры: background, size, weight и padding.

  • Также включен следующий компонент из Wear Compose Navigation:

  • SwipeDismissableNavHost – место в иерархии Compose, где выполняется автономная навигация с возможностью вернуться назад с помощью жеста пролистывания. Контент отображается в SwipeToDismissBox, где указан текущий уровень навигации. Во время жеста смахивания, скрывающего окно, на фоне показывается предыдущий уровень навигации (если он есть).

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

Изменения в API

  • Добавлены функции CurvedModifier.padding*. Они используются, чтобы указать дополнительное пространство, которое нужно добавить вокруг изогнутого компонента. (I4dbb4)
  • Удален внутренний класс CompositionLocal (I42490)
  • Мы добавили постоянные значения для размеров значков Button, CompactButton и ToggleButton в качестве руководства (I57cab).
  • Добавлен параметр enabled в AppCard и TitleCard. Теперь у них похожий API, как и у карточек androidx.compose.material. Если для параметра задано значение false, на карточку нельзя будет нажать. (Idc48d, b/228869805)

Исправление ошибок

  • Теперь при достижении нижнего или верхнего предела счетчика кнопки уменьшения и увеличения становятся неактивными (и к iconColor применяется ContentAlpha.disabled) (I4be9f).
  • Мы добавили отступ в 1 dp вокруг содержимого средства выбора, когда оно отрисовывается с градиентом, чтобы предотвратить дрожание текста при пролистывании. (I0b7b9)
  • Добавлены тесты скриншотов для PositionIndicator (I5e8bc)
  • Добавлены дополнительные тесты для AppCard и TitleCard (I85391, b/228869805)

Версия 1.0.0-alpha21

20 апреля 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha21, androidx.wear.compose:compose-material:1.0.0-alpha21 и androidx.wear.compose:compose-navigation:1.0.0-alpha21. Версия 1.0.0-alpha21 содержит следующие коммиты:

Новые функции

  • Добавлены новые модификаторы кривизны, позволяющие задать фон изогнутого элемента: CurvedModifier.background, .radialGradientBackground и .angularGradientBackground (I8f392).
  • Разрешить указывать режим переполнения текста (обрезка, многоточие, видимость). (I8e7aa)
  • Добавлен модификатор CurvedModifier.weight, аналогичный модификатору в Compose. Этот параметр можно использовать для дочерних элементов curvedRow и CurvedLayout (для ширины) и дочерних элементов curvedColumn (для высоты). (I8abbd)
  • Добавлены модификаторы CurvedModifier.size, .angularSize и .radialSize, позволяющие задавать размер изогнутого элемента. (I623c7)

Изменения в API

  • Изменение порядка параметров, чтобы фон всегда указывался до цвета в Wear Compose API (I43208)
  • Удалены параметры clockwise и insideOut, а в новых классах они заменены более выразительными константами. Направление изогнутого макета теперь может учитывать значение LayoutDirection и наследуется, если не указано (If0e6a).
  • Мы заменили autoCenter: Boolean на autoCenter: AutoCentringParams, чтобы устранить проблему с API в ScalingLazyColumn. (Ia9c90)
  • Мы переименовали iconTintColor и toggleControlTintColor в iconColor и toggleControlColor во всем API (Chip/ToggleChip/Dialog/Slider/Stepper/...), поскольку цвет применяется к значку или слоту toggleControl. (Ied238)
  • Переписать перечисление PageIndicatorStyle в класс значений (I2dc72)
  • Мы добавили RowScope/ColumnScope/BoxScope в некоторые слоты в наших Composables, чтобы разработчики понимали, какие макеты предполагаются. Это позволит разработчикам использовать дополнительные модификаторы для контента некоторых слотов и избежать необходимости предоставлять дополнительные элементы макета. Кроме того, мы немного изменили цвета карточек приложений и заставок, чтобы по умолчанию для свойств timeColor и appColor использовался цвет contentColor. При необходимости эти свойства можно переопределить по отдельности. (I26b59)
  • Объект SwipeToDismissBoxState.Companion стал частным (I39e84)
  • Исправьте порядок параметров для InlineSlider и Stepper. Простое изменение в соответствии с правилами API (I11fec)
  • Мы удалили объект "Сохранение" для SwipeToDismissBoxState, так как он не использовался. (Ifb54e)
  • Мы обновили CompactChip, чтобы привести его в соответствие с последней спецификацией UX. Отступы уменьшены до 12 dp по горизонтали и 0 dp по вертикали. Шрифт для ярлыка изменен с button на caption1. Рекомендуемые размеры значка: 20 x 20 пикселей, если значок и ярлык присутствуют, и 24 x 24 пикселя, если значок используется в компактном чипе. Если используется только значок, он будет выровнен по центру. (Iea2be)
  • Мы добавили в ScalingLazyListLayoutInfo несколько новых полей, чтобы разработчики могли узнать, сколько contentPadding и autoCenteringPadding было применено. Эти данные могут быть полезны разработчикам при расчете прокрутки (I7577b).
  • Мы добавили переходы при открытии и закрытии диалоговых окон. Добавлен параметр showDialog, и теперь диалоговое окно управляет собственной видимостью (это позволяет диалоговому окну запускать анимацию вступления и концовки, когда оно показывается или скрывается). Обратите внимание, что анимация выхода не выполняется, если пользователь закрывает диалоговое окно с помощью жеста. Мы также добавили значение по умолчанию для параметра state в недавно добавленную перегрузку SwipeToDismissBox. (I682a0)
  • Чтобы улучшить поддержку интернационализации и доступности, мы изменили теги ToggleChip и SplitToggleChip так, чтобы у них больше не было значения по умолчанию для слота toggleControl. Мы также изменили ToggleChipDefaults, чтобы следующие методы возвращали ImageVector, а не Icon (обратите внимание, что поскольку они больше не возвращают @Composables, их названия теперь начинаются со строчной буквы): SwitchIcon()->switchIcon(), CheckboxIcon->checkboxIcon() и RadioIcon()->radioIcon(). Это позволяет разработчикам создавать собственные композиции Icon() с подходящим набором contentDescription. (I5bb5b)
  • Мы добавили параметр SwipeDismissableNavHostState в SwipeDismissableNavHost. Это позволяет использовать жесты смахивания с края экрана для навигации, поскольку теперь SwipeToDismissBoxState можно поднять и использовать для инициализации SwipeDismissableNavHostState и Modifier.edgeSwipeToDismiss на экранах, где требуется смахивание с края. (I819f5, b/228336555)

Исправление ошибок

  • Следите за тем, чтобы макеты с изогнутыми элементами были актуальными. (Ie8bfa, b/229079150)
  • Исправлена ошибка, описанная на странице https://issuetracker.google.com/issues/226648931 (Ia0a0a, b/226648931).
  • Удалены ненужные экспериментальные аннотации (I88d7e).

Версия 1.0.0-alpha20

6 апреля 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha20, androidx.wear.compose:compose-material:1.0.0-alpha20 и androidx.wear.compose:compose-navigation:1.0.0-alpha20. Версия 1.0.0-alpha20 содержит следующие коммиты:

Новые функции

  • Добавьте модификатор edgeSwipeToDismiss для SwipeToDismiss. Позволяет swipeToDismiss быть активным только на левом краю области просмотра. Используется, когда центр экрана должен поддерживать горизонтальную прокрутку, например при прокрутке карты в двух измерениях или перелистывании страниц.(I3fcec, b/200699800)

Изменения в API

  • Базовая реализация CurvedModifiers открывает возможности для настройки изогнутого контента (но пока не предоставлены CurvedModifiers, а возможность создавать собственные модификаторы может появиться позже) (I9b8df).
  • EdgeSwipeОбновлена документация по модификаторам и значениям по умолчанию, чтобы сделать ее более понятной .(I6d00d)
  • Добавьте слот PageIndicator в Scaffold. Добавив PageIndicator непосредственно в Scaffold, мы можем быть уверены, что он будет правильно отображаться на круглых устройствах. (Ia6042)
  • Удалите значки по умолчанию из параметров InlineSlider и Stepper. Это поможет разработчикам уделять больше внимания требованиям к локализации и доступности. Использование стандартных значков было показано в демонстрациях и примерах. (I7e6fd)
  • Замена параметров Trailing и Leading на Start и End в TimeText (Iaac32)
  • Мы добавили перегрузку SwipeToDismissBox с параметром onDismissed, чтобы поддерживать распространенный вариант использования, при котором событие навигации запускается после завершения жеста пролистывания. (I50353, b/226565726)
  • Удалены аннотации ExperimentalWearMaterialApi из использования TimeText (Ide520)
  • Мы отметили интерфейсы ScalingLazyList/Column и info как закрытые, поскольку они не предназначены для реализации внешними разработчиками. Это позволит нам добавлять в них новые элементы без нарушения совместимости. (I7d99f)
  • Мы добавили в инструмент выбора новый параметр flingBehaviour и метод PickerDefaults.flingBehaviour(), чтобы можно было настраивать поведение при пролистывании, например добавлять поддержку RSB. Теперь PickerState реализует интерфейс ScrollableState. (Ib89c7)

Исправление ошибок

  • Обновлены правила базового профиля Android Runtime (ART) для библиотек Wear Compose. ART может использовать правила профиля на устройствах, чтобы заранее скомпилировать определенное подмножество приложения и повысить его производительность. Обратите внимание, что это не повлияет на приложения с возможностью отладки. (Iaa8ef)
  • Улучшение документации (I2c051)

Версия 1.0.0-alpha19

23 марта 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha19, androidx.wear.compose:compose-material:1.0.0-alpha19 и androidx.wear.compose:compose-navigation:1.0.0-alpha19. Версия 1.0.0-alpha19 содержит следующие коммиты:

Изменения в API

  • Переименован с CurvedRow на CurvedLayout и переработан в область с DSL. С помощью этого языка можно создавать более сложные макеты с кривыми, используя вложенные элементы curvedRow и curvedColumn (аналогичные элементам "Строка" и "Столбец" для макетов с кривыми). Внутри этих элементов макета можно использовать три элемента: curvedComposable (для добавления любого элемента @Composable), basicCurvedText (для изогнутого текста из библиотеки Foundation) и curvedText (для изогнутого текста с учетом материалов для Wear OS). (Ib776a)
  • Сделайте сторону для PositionIndicator настраиваемой. Теперь можно задать положение индикатора "В конце" (с учетом направления макета), "Напротив RSB" (с учетом поворота экрана, чтобы расположить индикатор напротив физической кнопки RSB) или абсолютные значения "Слева" и "Справа". (I2f1f3)
  • В SwipeToDismissBox мы переименовали SwipeDismissTarget.Original в SwipeToDismissValue.Default, а SwipeDismissTarget.Dismissal – в SwipeToDismissValue.Dismissed. Мы также перенесли SwipeToDismissBoxDefaults.BackgroundKey и SwipeToDismissBoxDefaults.ContentKey в SwipeToDismissKeys.Background и SwipeToDismissKeys.Content соответственно. (I47a36)
  • Мы добавили в окно выбора режим "Только чтение" для экранов с несколькими окнами выбора, где одновременно можно редактировать только одно из них. Если селектор доступен только для чтения, в нем отображается выбранный вариант и ярлык (если он задан). (I879de)
  • SwipeToDismissBoxState был переработан, чтобы ограничить область действия ExperimentalWearMaterialApi до Modifier.swipeable и SwipeableState, которые теперь используются внутри. SwipeToDismissBoxState теперь включает currentValue, targetValue, isAnimationRunning и snapTo, чтобы поддерживать распространенные варианты использования. Если вам нужны другие свойства, сообщите нам. Также исправлено поведение SwipeableState в случае, когда смещение при пролистывании находится в пределах ошибки округления относительно якоря. (I58302)

Исправление ошибок

  • Упрощенный и исправленный код для определения того, можно ли прокручивать контент элемента ScalingLazyColumn (используется, чтобы решить, показывать ли полосу прокрутки) (I7bce0).
  • Исправлена ошибка индикатора позиции при использовании нескольких состояний и переключении между ними (I320b5).
  • Мы обновили типографику и шрифты темы Compose для Wear OS в соответствии с нашими последними рекомендациями по UX. Обратите внимание, что значения display1 (40 sp) и display2 (34 sp) теперь меньше, чем раньше. Кроме того, мы внесли небольшие изменения в высоту и интервалы между строками. (Ie3077)
  • Мы добавили сопротивление для SwipeToDismissBox, чтобы движение происходило только при проведении пальцем для закрытия и не происходило в противоположном направлении. (Ifdfb9)
  • Мы изменили некоторые значения параметров по умолчанию для функций CircularProgressIndicator, чтобы они соответствовали рекомендациям по дизайну Wear Material Design. В версии Spinner/Indeterminant изменены размер (40 –> 24 dp), цвет индикатора (primary –> onBackground), прозрачность цвета дорожки (30 % –> 10%) и ширина штриха (4 –> 3 dp). В версии Progress/Determinate была изменена прозрачность цвета дорожки (с 30 % до 10%). (I659cc)
  • Мы обновили параметры масштабирования по умолчанию для ScalingLazyColumn в соответствии с последними спецификациями Wear Material Design. В результате элементы списка будут масштабироваться ближе к центру, а по краям списка масштабирование будет меньше, чем раньше. (Ica8f3)
  • Некоторые изменения в ScalingLazyColumnDefaults.snapFlingBehavior для улучшения конца анимации (If3260)

Версия 1.0.0-alpha18

9 марта 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha18, androidx.wear.compose:compose-material:1.0.0-alpha18 и androidx.wear.compose:compose-navigation:1.0.0-alpha18. Версия 1.0.0-alpha18 содержит следующие коммиты:

Изменения в API

  • Внесены улучшения в PositionIndicator: ShowResult переименован в PositionIndicatorVisibility. Улучшена производительность, чтобы избежать повторных вычислений, когда они не нужны (Iaed9d).
  • Рекомендуемый цвет для SplitToggleChip был изменен. Теперь у чипов SplitToggleChip есть однотонный фон, когда они выбраны или не выбраны. Цвет ToggleControl является основным индикатором того, выбран компонент или нет. Мы добавили новый ToggleDefaults.splitToggleChipColors(), чтобы поддерживать новую цветовую схему. Мы также упростили методы toggleChipColors(), удалив splitBackgroundOverlayColor (I7e66e).
  • Мы добавили атрибут "нескорректированный размер" ScalingLazyListItemInfo, поскольку из-за точности вычислений с плавающей запятой нельзя безопасно рассчитать исходный размер товара, используя масштабированный размер и коэффициент масштабирования. (I54657, b/221079441)
  • Добавьте HorizontalPageIndicator. Она показывает общее количество страниц и выбранную страницу. Может быть линейным или изогнутым в зависимости от формы устройства. Кроме того, можно задать собственную форму индикатора, чтобы определить, как он будет выглядеть. (Iac898)
  • Мы обновили PickerState, чтобы можно было изменять numberOfOptions. Это позволяет использовать такие функции, как DatePicker, когда количество дней в месяце меняется в зависимости от выбранного месяца. Параметр конструктора для PickerState был изменен на initialNumberOfOptions. (Iad066)
  • Скрывать PositionIndicator, если это полоса прокрутки, которую нельзя прокрутить. (Id0a7f)
  • Чтобы обеспечить единообразие с Scaffold, в компоненте диалогового окна, который занимает весь экран, теперь отображаются значки PositionIndicator и Vignette. Теперь вместо Column используется ScalingLazyColumn, поэтому содержимое диалогового окна находится в ScalingLazyListScope (и обычно должно быть заключено в item { /* content */ }). Диалоговое окно поддерживает параметр verticalArrangement. (Idea13)
  • Мы изменили название свойства ToggleChip и SplitToggleChip toggleIcon на toggleControl, чтобы оно лучше соответствовало принципам Material Design и дизайнерам и разработчикам было проще работать с API. (If5921, b/220129803)
  • В типологию тем оформления Wear добавлен новый элемент caption3.Это небольшой шрифт, который используется для длинных текстов, например юридических. (I74b13, b/220128356)

Исправление ошибок

  • Остановить анимацию прилипания, когда мы достигнем цели. (Idb69d)
  • Анимировать изменения в PositionIndicator. (I94cb9)
  • Мы изменили параметр ScalingLazyColumn autoCentering на основе отзывов о пользовательском интерфейсе и опыте взаимодействия. Теперь он предоставляет только достаточно места, чтобы элементы с индексом ScalingLazyListState.initialCenterItemIndex или выше можно было полностью прокрутить до центра области просмотра. Это позволяет разработчикам размещать в центре экрана один или два элемента, которые нельзя прокрутить в середину. Это означает, что элемент ScalingLazyColumn с автоматическим центрированием не сможет прокручиваться выше элемента initialCenterItemIndex/initialCenterItemScrollOffset (I22ee2).
  • Мы добавили демонстрацию окна выбора даты и исправили ошибку в PickerState, из-за которой параметр initiallySelectedOption применялся только после того, как окно выбора было показано. (Id0d7e)
  • Чтобы уменьшить обрезку более широких элементов ScalingLazyColumn на круглых экранах, мы увеличили отступ по горизонтали по умолчанию с 8 до 10 dp. (I0d609)
  • Убедитесь, что при прокрутке экрана виден значок PositionIndicator. (Ied9a2)

Версия 1.0.0-alpha17

23 февраля 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha17, androidx.wear.compose:compose-material:1.0.0-alpha17 и androidx.wear.compose:compose-navigation:1.0.0-alpha17. Версия 1.0.0-alpha17 содержит следующие коммиты:

Новые функции

  • Мы добавили поддержку привязки, которую можно использовать с ScalingLazyColumn. Установите значение flingBehavior = ScalingLazyColumnDefaults.flingWithSnapBehavior(state), чтобы включить поддержку привязки. (I068d3, b/217377069)
  • Мы добавили демонстрации окна выбора времени, в котором можно задать время в 24-часовом или 12-часовом формате. (Ie5552)

Изменения в API

  • Исправлена проблема с TimeText настраиваемыми шрифтами и стилями на квадратном устройстве (Iea76e)
  • ScalingLazyListLayoutInfo теперь имеет свойства reverseLayout, viewportSize и ориентации, соответствующие свойствам из LazyListLayoutInfo (I4f258, b/217917020)
  • У ScalingLazyColumn теперь есть свойство userScrollEnabled, соответствующее свойству из LazyList (I164d0, b/217912513).
  • По умолчанию в селекторах теперь используется градиент вверху и внизу (Iab92a).

Исправление ошибок

  • Мы изменили ScalingLazyColumn так, чтобы он больше не занимал все пространство родительского элемента. Вместо этого размер будет определяться размером содержимого. Это соответствует поведению LazyColumn. Если вы хотите восстановить прежнее поведение, передайте значение Modifier.fillMaxWidth()/width()/widthIn() параметру ScalingLazyColumn (I51bf8).
  • Мы улучшили сообщение об исключении в SwipeDismissableNavHost.kt, которое появлялось, если в стеке навигации не было элементов. (I1b1dc)

Версия 1.0.0-alpha16

9 февраля 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha16, androidx.wear.compose:compose-material:1.0.0-alpha16 и androidx.wear.compose:compose-navigation:1.0.0-alpha16. Версия 1.0.0-alpha16 содержит следующие коммиты:

Новые функции

  • Добавьте CircularProgressIndicator. Индикаторы выполнения показывают продолжительность процесса или неопределенное время ожидания. Поддерживает вырез для TimeText или других компонентов, если используется в полноэкранном режиме. (Iab8da)

Изменения в API

  • У элементов выбора теперь есть параметр flingBehavior. Значение по умолчанию позволяет им привязываться к ближайшему варианту при прокрутке/проведении по экрану. (I09000)
  • Дополнительный целочисленный API для InlineSlider и Stepper (I1b5d6)

Исправление ошибок

  • Мы изменили значение по умолчанию для параметра initialCenterItemIndex в компоненте ScalingLazyListState с 0 на 1. Это означает, что если при создании состояния не переопределить значение с помощью ScalingLazyListState.rememberScalingLazyListState(initialCenterItemIndex =), то второй элемент списка (индекс == 1) будет размещен в центре области просмотра при инициализации, а первый элемент (индекс == 0) – перед ним. Это позволяет улучшить визуальный эффект по умолчанию, поскольку большая часть области просмотра будет заполнена элементами списка. (I0c623, b/217344252)
  • Мы уменьшили значение по умолчанию для параметра ScalingLazyColumn extraPadding с 10% до 5 %, чтобы в списке было достаточно элементов, даже если некоторые из них уменьшены. Это позволит избежать создания дополнительных элементов списка, которые могут не отображаться в окне просмотра. Если используются нестандартные параметры масштабирования (например, более сильное масштабирование), разработчик может настроить дополнительное заполнение с помощью viewportVerticalOffsetResolver. (I76be4)
  • Исправлена проблема с многострочным текстом на квадратном устройстве (Ibd3fb)
  • Мы изменили ScalingLazyColumn так, чтобы он больше не занимал все пространство родительского элемента. Вместо этого размер будет определяться размером его содержимого. Это соответствует поведению LazyColumn. Если вы хотите восстановить прежнее поведение, передайте Modifier.fillMaxSize() в ScalingLazyColumn. ПРИМЕЧАНИЕ. Это изменение неполное и будет доработано в дополнительном запросе в следующем альфа-релизе. (I3cbfa)

Версия 1.0.0-alpha15

26 января 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha15, androidx.wear.compose:compose-material:1.0.0-alpha15 и androidx.wear.compose:compose-navigation:1.0.0-alpha15. Версия 1.0.0-alpha15 содержит следующие коммиты:

Изменения в API

  • В таблицу "ScalingLazyColumn" добавлено новое свойство autoCentering. Если задано значение true (по умолчанию), все элементы, включая первый и последний, можно будет прокрутить так, чтобы они оказались в центре области просмотра списка. Если вы используете автоматическое центрирование, то, скорее всего, захотите установить для вертикального отступа значение 0.dp. Если указаны и autoCentering, и vertical content padding, то перед первым и после последнего элемента списка будет добавлено дополнительное пространство, позволяющее прокручивать список ещё дальше. (I2a282, b/214922490)
  • Мы добавили компонент Dialog, который позволяет любому элементу composable запускать полноэкранное диалоговое окно поверх другого контента. Когда диалоговое окно показывается, его можно закрыть с помощью жеста смахивания. При этом на фоне будет виден контент родительского окна. Содержимое диалогового окна должно быть Alert или Confirmation (переименованные компоненты AlertDialog и ConfirmationDialog). Alert, Confirmation и Dialog находятся в пакете androidx.wear.compose.material.dialog. В качестве пункта назначения можно использовать оповещение и подтверждение. Также при необходимости добавлен параметр ColumnScope для оповещений и подтверждений. (Ia9014)
  • Мы удалили onSurfaceVariant2 из цветов темы Material для Compose for WearOS и заменили его на onSurfaceVariant в библиотеке. (Icd592)
  • Добавлен метод для программного выбора варианта в PickerState. Теперь при создании PickerState можно указать вариант, выбранный по умолчанию. (I92bdf)
  • Мы добавили возможность настраивать поведение ScalingLazyColumn при пролистывании. (I1ad2e, b/208842968)
  • Мы добавили NavController.currentBackStackEntryAsState() в библиотеку Wear.Compose.Navigation. (If9028, b/212739653)
  • Добавлены Modifier.onRotaryScrollEvent() и Modifier.onPreRotaryScrollEvent() для устройств Wear с вращающейся боковой кнопкой.(I18bf5, b/210748686)

Версия 1.0.0-alpha14

12 января 2022 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha14, androidx.wear.compose:compose-material:1.0.0-alpha14 и androidx.wear.compose:compose-navigation:1.0.0-alpha14. Версия 1.0.0-alpha14 содержит следующие коммиты:

Новые функции

  • Мы добавили в ScalingLazyListState несколько методов, которые позволяют разработчикам управлять прокруткой до определенных элементов списка, а также задавать начальный элемент списка и смещение.

    В рамках этого изменения мы также модифицировали ScalingLazyList, чтобы он был ориентирован на центр области просмотра ScalingLazyList, а не на ее начало.

    В ScalingLazyList добавлено новое свойство anchorType: ScalingLazyListAnchorType = ScalingLazyListAnchorType.ItemCenter, которое позволяет определить, что должно быть выровнено по центральной линии области просмотра: центр (ScalingLazyListAnchorType.ItemCenter) или Edge (ScalingLazyListAnchorType.ItemStart).

    В результате значения ScalingLazyListItemInfo.offset и ScalingLazyListItemInfo.adjustedOffset изменились и теперь отражают смещение объекта относительно позиции элемента списка и anchorType списка. Например, для элемента ScalingLazyColumn с параметром anchorType, равным ItemCenter, и элемента списка, центр которого расположен на центральной линии области просмотра, смещение будет равно 0.

    Новые методы: scrollTo, animatedScrollTo, centerItemIndex и centerItemOffset. (I61b61)

  • Мы добавили обработчик кнопки "Назад" в SwipeDismissableNavHost, чтобы при нажатии на нее можно было перейти на предыдущий уровень иерархии навигации. (I5b086, b/210205624)

Версия 1.0.0-alpha13

15 декабря 2021 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha13, androidx.wear.compose:compose-material:1.0.0-alpha13 и androidx.wear.compose:compose-navigation:1.0.0-alpha13. Версия 1.0.0-alpha13 содержит следующие коммиты.

Изменения в API

  • Мы сделали RangeIcons внутренним (на него ссылаются InlineSlider и Stepper). (I927ec)

Исправление ошибок

  • Устранена проблема, из-за которой SwipeDismissableNavHost добавлял целевой объект в иерархию Compose до того, как он достигал состояния жизненного цикла CREATED, что приводило к ошибке IllegalStateException. Это исправление было необходимо для обновления зависимости от navigation-compose до 2.4.0-beta02 и более поздних версий. (I40a2b, b/207328687)

  • Добавлен класс перечисления Drawables для получения ресурсов drawable в библиотеке Wear Compose, чтобы больше не требовалось использовать отражение. Исправлена ошибка, из-за которой удалялись объекты библиотеки, когда использовались значения minifyEnabled=true или shrinkResources=true. (Ib2a98)

  • Добавлены тесты для Stepper в Wear Compose (I2d03a).

  • Добавлены примеры для SwipeDismissableNavHost в Wear Compose Navigation. (I85f06)

Версия 1.0.0-alpha12

1 декабря 2021 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha12, androidx.wear.compose:compose-material:1.0.0-alpha12 и androidx.wear.compose:compose-navigation:1.0.0-alpha12. Версия 1.0.0-alpha12 содержит следующие коммиты:

Новые функции

  • Мы добавили компонент "Пошаговый регулятор", который позволяет пользователям выбирать значения из диапазона. Пошаговый элемент управления занимает весь экран. Вверху и внизу у него есть кнопки увеличения и уменьшения, а в середине – слот, в который можно добавить чип или текст. При необходимости значки кнопок можно изменить. (I625fe)

  • Мы добавили два новых компонента для показа диалоговых окон: AlertDialog ожидает ответа от пользователя и показывает заголовок, значок, сообщение и либо а) две кнопки для простого выбора (положительного или отрицательного), либо б) чипы или чипы-переключатели, расположенные вертикально, для более гибкого выбора. ConfirmationDialog показывает подтверждение с тайм-аутом. В этом простом диалоговом окне есть поля для заголовка и (анимированного) значка. (Ic2cf8)

Изменения в API

  • Добавлены единицы измерения (миллисекунды) для предложенных значений длительности диалогового окна. (I09b48)

Версия 1.0.0-alpha11

17 ноября 2021 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha11, androidx.wear.compose:compose-material:1.0.0-alpha11 и androidx.wear.compose:compose-navigation:1.0.0-alpha11. Версия 1.0.0-alpha11 содержит следующие коммиты:

Новые функции

  • Мы добавили компонент выбора, который позволяет пользователю выбрать элемент из прокручиваемого списка. По умолчанию список элементов повторяется бесконечно в обоих направлениях, чтобы создать впечатление вращающегося цилиндра, на который смотрят сбоку. В следующих версиях будут добавлены две функции: привязка к значению после пролистывания/проведения по экрану и добавление функции в PickerState для установки/прокрутки текущего значения. (I6461b)

Изменения в API

  • Добавлен ScalingLazyItemScope и новые модификаторы fillParentMaxSize, fillParentMaxWidth и fillParentMaxHeight, позволяющие задавать размер элементов списка на основе размера родительского контейнера. Элементы могут занимать весь размер родительского элемента или его часть. Это позволяет использовать функции, которые уже доступны в LazyRow/Column (I4612f).
  • Добавлена поддержка ScalingLazyColumn, позволяющая элементам иметь ключ. Также добавлены удобные методы, позволяющие добавлять элементы из массивов и списков. (Ic1f89)

Исправление ошибок

  • Дополнительные примеры для TimeText (I8cb64)

Версия 1.0.0-alpha10

3 ноября 2021 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha10, androidx.wear.compose:compose-material:1.0.0-alpha10 и androidx.wear.compose:compose-navigation:1.0.0-alpha10. Версия 1.0.0-alpha10 содержит следующие коммиты:

Новые функции

  • Добавлен встроенный ползунок для Wear Compose. Встроенный ползунок позволяет пользователям выбирать значения из диапазона. Диапазон выбора представлен в виде полосы между минимальным и максимальным значениями, из которой пользователи могут выбрать одно значение. (If0148)

  • Попробуйте новую практическую работу по Compose для WearOS!

Изменения в API

  • В Macrobenchmark теперь используется minSdkVersion версии 23. (If2655)

Исправление ошибок

  • Обновление обработки перехода в SwipeDismissableNavHost в SideEffect (I04994, b/202863359)
  • Изменено поведение при переходе в SwipeDismissableNavHost (I1cbe0, b/202863359)

Версия 1.0.0-alpha09

27 октября 2021 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha09, androidx.wear.compose:compose-material:1.0.0-alpha09 и androidx.wear.compose:compose-navigation:1.0.0-alpha09. Версия 1.0.0-alpha09 содержит следующие коммиты:

Новые функции

  • Мы запустили предварительную версию для разработчиков Compose для Wear OS. В статье блога рассказывается об основных composable-функциях и приводятся ссылки на ресурсы, которые помогут вам начать работу с ними.

Изменения в API

  • Теперь разработчики могут настраивать все цвета в цветовой теме Wear Material Design. (I4759b, b/199754668)

Исправление ошибок

  • Добавлены примеры SwipeToDismissBox, сохраняющие состояние (Ibaffe)
  • Добавлены ссылки на руководства на сайте developer.android.com из KDocs для CurvedText, TimeText и SwipeToDismissBox. (I399d4)
  • Теперь SwipeDismissableNavHost вызывает исключение, если текущий пункт назначения отсутствует (это означает, что NavGraph был создан без использования служебной функции wear.compose.navigation.composable) (I91403).
  • Добавлены дополнительные материалы и примеры использования источника времени в TimeText (I4f6f0).

Версия 1.0.0-alpha08

13 октября 2021 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha08, androidx.wear.compose:compose-material:1.0.0-alpha08 и androidx.wear.compose:compose-navigation:1.0.0-alpha08. Версия 1.0.0-alpha08 содержит следующие коммиты:

Изменения в API

  • Мы переименовали свойства AppCard и TitleCard body в content и переместили их в конец списка свойств, чтобы их можно было указать в виде конечной лямбда-функции. Также для единообразия с новыми названиями слотов название bodyColor было изменено на contentColor. (I57e78)

Исправление ошибок

  • Добавлены ссылки на руководства на сайте developer.android.com из KDocs для компонентов "Кнопка", "Карточка", "Чип", "Тема", "Индикатор позиции" и "Масштабируемый ленивый столбец". (I22428)
  • Исправлена ошибка, из-за которой SwipeToDismissBox иногда не обрабатывал свайпы. (I9387e)
  • Добавлены примеры для Button, CompactButton, Chip, CompactChip, AppCard, TitleCard, ToggleButton, ToggleChip, SplitToggleChip (Iddc15)
  • Добавлены тесты производительности микроконтрольных показателей для Card, Chip, ToggleChip, TimeText и ScalingLazyColumn. (If2fe9)

Версия 1.0.0-alpha07

29 сентября 2021 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha07, androidx.wear.compose:compose-material:1.0.0-alpha07 и androidx.wear.compose:compose-navigation:1.0.0-alpha07. Версия 1.0.0-alpha07 содержит следующие коммиты:

Новые функции

  • Добавлен компонент CurvedText в material – компонент, позволяющий разработчикам легко писать изогнутый текст, повторяющий кривизну круга (обычно на краю круглого экрана). (I19593)

Изменения в API

  • Добавлены тесты для TimeText (Idfead)
  • Преобразование ArcPaddingValues в интерфейс. (Iecd4c)
  • Добавлена анимация в SwipeToDismissBox (I9ad1b)
  • В API SwipeToDismissBox добавлен параметр hasBackground, позволяющий отключить жест пролистывания, если нет фонового контента. (I313d8)
  • rememberNavController() теперь принимает необязательный набор экземпляров Navigator, которые будут добавлены в возвращенный NavController, чтобы лучше поддерживать необязательные навигаторы, такие как материалы для навигации по аккомпанементу. (I4619e)
  • Удалите копию NamedNavArgument из wear.compose.navigation и добавьте ссылку на нее из navigation-common. (I43af6)

Исправление ошибок

  • Устранена нестабильность теста CurvedRow на небольших устройствах. (If7941)
  • Исправлено возможное мерцание в CurvedRow при обновлении контента и обеспечено повторное измерение изогнутой строки (Ie4e06).
  • Функция ChipDefaults.gradientBackgroundChipColors() была обновлена в соответствии с изменениями в спецификации UX. Теперь градиент начинается с MaterialTheme.colors.primary с альфа-каналом 32,5% и заканчивается MaterialTheme.colors.surface с альфа-каналом 0% на фоне MaterialTheme.colors.surface с альфа-каналом 75 %. (Id1548)
  • Мы обновили цвета для переключателей в выбранном состоянии в соответствии с последними рекомендациями по дизайну Wear Material Design UX Spec. Если выбран переключатель ToggleChips, теперь у него будет градиентный фон от MaterialTheme.color.surface @ 0% alpha (слева вверху) до MaterialTheme.color.primary @ 32% alpha (справа внизу) поверх фона MaterialTheme.color.surface @ 75% alpha. В результате разница между выбранным и невыбранным состоянием ToggleChip становится менее заметной. (Idd40b)

Версия 1.0.0-alpha06

15 сентября 2021 г.

androidx.wear.compose:compose-foundation:1.0.0-alpha06, androidx.wear.compose:compose-material:1.0.0-alpha06 и androidx.wear.compose:compose-navigation:1.0.0-alpha06. Версия 1.0.0-alpha06 содержит следующие коммиты.

Новые функции

  • Мы добавили компонент Scaffold, который обеспечивает структуру для обработки позиции индикаторов (например, прокрутки или громкости), область в верхней части экрана для отображения времени и статуса приложения, а также поддерживает виньетку для размытия верхнего и нижнего краев экрана при прокрутке контента. Основная область Scaffold – это место, где размещается контент приложения. (I5e0bf)
  • Добавлена реализация TimeText для Wear Compose (I5654c)

Библиотека навигации Wear Compose

  • Мы добавили первую версию библиотеки Wear Compose Navigation, которая обеспечивает интеграцию между библиотеками Wear Compose и Androidx Navigation. Он позволяет легко переходить между функциями @Composable в качестве пунктов назначения в приложении.

  • В первом выпуске доступны следующие функции:

    • Компонуемый элемент SwipeDismissableNavHost, в котором размещается граф навигации и поддерживается переход назад с помощью жестов пролистывания.
    • NavGraphBuilder.composable для создания графов навигации.
    • rememberSwipeDismissableNavController(), чтобы разрешить передачу состояния
  • Пример использования, в котором мы создаем два экрана и переходим между ними:

    val navController = rememberSwipeDismissableNavController()
    SwipeDismissableNavHost(
        navController = navController,
        startDestination = "start"
    ) {
        composable("start") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Button(onClick = { navController.navigate("next") }) {
                    Text("Go")
                }
            }
        }
        composable("next") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Text("Swipe to go back")
            }
        }
    }
    
  • Wear Compose Navigation поставляется как отдельная библиотека, поэтому простым приложениям WearCompose, в которых реализована собственная навигация, не нужно зависеть от библиотеки Androidx Navigation.

Изменения в API

  • В SwipeDismissableNavHost добавлена поддержка rememberSaveable путем установки ключа идентификации для фона и контента (I746fd).
  • Мы добавили адаптер PositionIndicator, который может обрабатывать LazyListState (I21b88).
  • Обновлен компонент SwipeToDismissBox, чтобы поддерживать параметр rememberSaveable (Ie728b).
  • Мы добавили поддержку reverseLayout в ScalingLazyColumn. Это позволяет изменить направление прокрутки и макет (I9e2fc).
  • Удалены устаревшие функции performGesture и GestureScope, которые были заменены функциями performTouchInput и TouchInjectionScope. (Ia5f3f, b/190493367)
  • Мы переименовали VignetteValue в VignettePosition, а VignetteValue.Both – в VignettePosition.TopAndBottom. (I57ad7)
  • Мы переименовали ScalingLazyColumnState в ScalingLazyListState, ScalingLazyColumnItemInfo в ScalingLazyListItemInfo, ScalingLazyColumnLayoutInfo в ScalingLazyListLayoutInfo и ScalingLazyColumnScope в ScalingLazyListScope, чтобы в будущем добавить реализацию ScalingLazyRow. (I22734)

Исправление ошибок

  • В документацию по компактным чипам добавлено описание того, что происходит, если не указать ни значок, ни ярлык. (I4ba88)
  • Мы изменили некоторые компоненты карточки Wear. (I6b3d0)
    1. Расстояние между заголовком и текстом карточки уменьшено с 8 до 2 dp.
    2. Шрифт заголовка TitleCard изменен с body на title3.
    3. Изменен градиент фона карточки, чтобы фон выглядел темнее.

Версия 1.0.0-alpha05

1 сентября 2021 г.

Выпущены androidx.wear.compose:compose-foundation:1.0.0-alpha05 и androidx.wear.compose:compose-material:1.0.0-alpha05. Версия 1.0.0-alpha05 содержит следующие коммиты:

Изменения в API

  • Добавление аннотации @Stable к ArcPaddingValues (I57deb)
  • Теперь ScalingLazyColumnState реализует интерфейс ScrollableState, предоставляя разработчикам программный доступ к прокрутке компонента. (I47dbc)

Исправление ошибок

  • Мы уменьшили расстояние между значком и текстом в чипе и переключателе чипа, чтобы привести их в соответствие с изменениями в спецификации UX. (I83802)

Версия 1.0.0-alpha04

18 августа 2021 г.

Выпущены androidx.wear.compose:compose-foundation:1.0.0-alpha04 и androidx.wear.compose:compose-material:1.0.0-alpha04. Версия 1.0.0-alpha04 содержит следующие коммиты:

Новые функции

  • Добавлены SwipeToDismissBox и модификатор swipeable, которые можно использовать для поддержки жеста "провести влево, чтобы закрыть". Хотя этот компонент не зависит от компонентов навигации, предполагается, что он будет использоваться для перехода с одного экрана на другой. Добавлены интеграционные тесты для демонстрации функции "Проведите, чтобы закрыть". (I7bbaa)
  • Мы добавили в класс ScalingLazyColumnState интерфейсы ScalingLazyColumnItemInfo и ScalingLazyColumnLayoutInfo, чтобы разработчики могли узнавать фактические позиции и размеры элементов в ScalingLazyColumn после применения масштабирования. Мы также исправили ошибку, связанную с расчетом масштабирования при применении к ScalingLazyColumn отступа сверху. (I27c07)

Изменения в API

  • Добавьте класс CurvedTextStyle, чтобы задать стиль изогнутого текста в параметрах. Аналогично TextStyle, но теперь поддерживает только цвет, размер шрифта и фон. В будущем мы добавим больше вариантов оформления. (I96ac3)
  • Мы добавили в класс ScalingLazyColumnState интерфейсы ScalingLazyColumnItemInfo и ScalingLazyColumnLayoutInfo, чтобы разработчики могли узнавать фактические позиции и размеры элементов в ScalingLazyColumn после применения масштабирования. Мы также исправили ошибку, связанную с расчетом масштабирования при применении к ScalingLazyColumn отступа сверху. (I27c07)
  • В перечисление SwipeDismissTarget, которое является частью API SwipeToDismissBox, добавлен элемент @ExperimentalWearMaterialApi. (I48b5e)

Исправление ошибок

  • Добавлен тестовый материал для SwipeToDismissBox (I9febc).

Версия 1.0.0-alpha03

4 августа 2021 г.

Выпущены androidx.wear.compose:compose-foundation:1.0.0-alpha03 и androidx.wear.compose:compose-material:1.0.0-alpha03. Версия 1.0.0-alpha03 содержит следующие коммиты.

Изменения в API

  • Добавлен компонент CurvedText, который позволяет разработчикам легко писать текст, повторяющий кривизну круга (обычно на краю круглого экрана) (Id1267).
  • Мы переименовали CardDefaults.imageBackgroundPainter() в CardDefaults.imageWithScrimBackgroundPainter(), чтобы было понятно, что фоновое изображение будет затемнено. (I53206)
  • Добавлен компонент ScalingLazyColumn, который представляет собой список для Wear Material. Он обеспечивает эффект рыбьего глаза, при котором размер элементов списка уменьшается, а прозрачность увеличивается по мере приближения к краю компонента. (I7070c)

Исправление ошибок

  • Мы изменили цвет по умолчанию для названия приложения в карточке приложения в соответствии с обновленными спецификациями UX. По умолчанию для appName теперь используется цвет MaterialTheme.colors.onSurfaceVariant. Также добавлено описание документации отсутствующего параметра для слота заголовка. (Ic4ad1)

Версия 1.0.0-alpha02

21 июля 2021 г.

Выпущены androidx.wear.compose:compose-foundation:1.0.0-alpha02 и androidx.wear.compose:compose-material:1.0.0-alpha02. Версия 1.0.0-alpha02 содержит следующие коммиты:

Новые функции

  • Добавлен новый класс CurvedRow для композиций, расположенных по дуге (I29941).
  • Добавлен новый тип карточки для использования в приложениях (TitleCard), а также поддержка изображений в качестве фона для карточек, чтобы подчеркнуть их содержимое (I53b0f).

Изменения в API

  • Добавлена поддержка радиального выравнивания для CurvedRow (аналогично вертикальному выравниванию в строке) (Id9de5).
  • Добавлен новый класс CurvedRow для композиций, расположенных по дуге (I29941)
  • Добавлен новый тип карточки для использования в приложениях (TitleCard), а также поддержка изображений в качестве фона для карточек, чтобы подчеркнуть их содержимое (I53b0f).
  • Добавлены значки переключателей (флажок, переключатель и радиокнопки) в ToggleChipDefaults, чтобы разработчикам было проще настраивать ToggleChip и SplitToggleChips (I7b639).
  • В чипах обновлены отступы в начале и конце контента. Теперь они составляют 14 dp независимо от того, есть ли в чипе значок (ранее было 12 dp, если значок есть, и 14 dp, если его нет) (I34c86).

Исправление ошибок

  • Добавьте тесты для CurvedRow (I93cdb)
  • Привязка зависимостей Wear Compose к Compose 1.0.0-rc01. (Ie6bc9)
  • Изменена обработка отрисовки фоновых изображений в карточках и чипах. Теперь изображения обрезаются, а не растягиваются, чтобы сохранить пропорции. (I29b41)
  • Добавлены новые демонстрации и интеграционные тесты для Button и ToggleButton. (5e27ed2)
  • Добавлены дополнительные тесты для чипов, чтобы охватить цвета контента для чипов фона изображений (Ia9183).

Версия 1.0.0-alpha01

1 июля 2021 г.

Выпущены androidx.wear.compose:compose-foundation:1.0.0-alpha01 и androidx.wear.compose:compose-material:1.0.0-alpha01. Версия 1.0.0-alpha01 содержит следующие коммиты:

Новые функции

Wear Compose – это библиотека на основе Kotlin и Compose, которая поддерживает Wear Material Design, расширение Material Design для носимых устройств с WearOS. В первой альфа-версии реализованы следующие функции:

  • Тема Material – настраивает цвета, типографику и формы компонентов, используемых из этой библиотеки.
  • Chip, CompactChip – чипы имеют форму стадиона. Доступны варианты с местом для значка, ярлыка и дополнительного ярлыка.
  • - ToggleChip, SplitToggleChip – специализированный тип чипа, в который можно добавить значок переключателя с двумя состояниями, например радиокнопку или флажок. Кроме того, у SplitToggleChip есть две области, на которые можно нажать: одна для клика, а другая для переключения.
  • Кнопка, компактная кнопка – кнопки круглой формы с одним слотом для значка или короткого текста (максимум три символа).
  • ToggleButton – кнопка, которая включает или отключает действие. У нее есть один слот для значка или короткого текста (не более трех символов).
  • Карточка, карточка приложения – прямоугольная форма со скругленными углами, в которой можно разместить значок приложения, время, заголовок и текст.

В будущих версиях мы добавим поддержку других виджетов, в том числе элементов выбора, ползунков, списков, индикаторов страниц, диалоговых окон, индикаторов прокрутки, уведомлений и т. д.

Кроме того, будет добавлена поддержка других функций, предназначенных для носимых устройств, например изогнутых макетов и текста, а также каркасов, которые упростят разработчикам создание приложений и оверлеев для носимых устройств.

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

Библиотеки Material взаимоисключающие и не должны использоваться в одном приложении. Если разработчик добавляет библиотеку Compose Material в зависимости, это означает, что: а) в библиотеке Wear Compose Material отсутствуют нужные компоненты (сообщите нам, какие именно); б) разработчик использует компонент, который не рекомендуется применять на носимых устройствах.