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 также считает динамическими постоянные выражения. Например, в следующем фрагменте кода четыре динамических выражения:
- Операция
plus(). - Операция
animate(). - Выражение
constant(1). - Выражение
constant(2), которое подразумевается значением2в динамическом выраженииplus().
val animatedAdditionResult = DynamicInt32.constant(1).plus(2).animate()
Дополнительные ресурсы
Чтобы узнать больше о том, как использовать динамические выражения на определенных платформах, ознакомьтесь со следующими статьями:
Рекомендуем
- Примечание. Текст ссылки показывается, когда JavaScript отключен.
- Переход на пространства имен ProtoLayout
- Побочные эффекты в Compose
- Краткое руководство по AGSL