Динамические выражения в Wear OS

Wear OS поддерживает динамическое обновление информации, которая появляется на карточках и в дополнениях.

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

Как создать привязки динамических данных

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

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

val systemTime = DynamicInstant.platformTimeWithSecondsPrecision()
val steps: DynamicInt32 = PlatformHealthSources.dailySteps()

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

val dynamicAdditionResult = DynamicInt32.constant(1).plus(2)

Список возможных типов динамических данных

Wear OS поддерживает следующие типы динамических данных:

Кроме того, вы можете преобразовать тип данных с помощью встроенных функций, например:

  • DynamicInt32 поддерживает преобразование в DynamicString с помощью format().
  • DynamicDuration позволяет извлекать определенные части, например секунды из продолжительности, в виде объектов DynamicInt32.

Используйте ограниченное количество динамических выражений на каждом экране

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

Wear OS также считает динамическими постоянные выражения. Например, в следующем фрагменте кода четыре динамических выражения:

  1. Операция plus().
  2. Операция animate().
  3. Выражение constant(1).
  4. Выражение constant(2), которое подразумевается значением 2 в динамическом выражении plus().

val animatedAdditionResult = DynamicInt32.constant(1).plus(2).animate()

Дополнительные ресурсы

Чтобы узнать больше о том, как использовать динамические выражения на определенных платформах, ознакомьтесь со следующими статьями: