Динамические выражения в 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 также считает константные выражения динамическими. Например, следующий фрагмент кода содержит 4 динамических выражения:

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

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

{% verbatim %} {% endverbatim %} {% verbatim %} {% endverbatim %}