Wear OS obsługuje dynamiczne aktualizacje informacji wyświetlanych w kafelkach i widżetach.
Za pomocą wyrażeń dynamicznych możesz powiązać dane, które pojawiają się na powierzchni Twojej aplikacji, np. kafelek lub widżet, z konkretnym źródłem danych. Przykładem takiego źródła danych są informacje o tętnie, które platforma może odczytać. Po utworzeniu tego powiązania system automatycznie zaktualizuje dane w kafelkach i widżetach.
Tworzenie dynamicznych wiązań danych
Aby utworzyć dynamiczne wiązanie danych, zdefiniuj zmienną, która korzysta z dynamicznego typu danych. Powiąż tę zmienną ze strumieniem danych, którego chcesz użyć.
Możesz np. pobrać wartości związane z zegarem systemowym i informacjami o stanie, jak pokazano w tym fragmencie kodu.
Kotlin
val systemTime = DynamicInstant.platformTimeWithSecondsPrecision() val steps: DynamicInt32 = PlatformHealthSources.dailySteps()
Java
DynamicInstant systemTime = DynamicInstant.platformTimeWithSecondsPrecision(); DynamicInt32 steps = PlatformHealthSources.dailySteps();
Możesz też tworzyć wartości dynamiczne z wyrażeń stałych i wykonywać operacje arytmetyczne na dowolnej wartości dynamicznej, jak w tym fragmencie kodu:
Kotlin
val dynamicValue = DynamicInt32.constant(1).plus(2)
Java
DynamicInt32 dynamicValue = DynamicInt32.constant(1).plus(2)
Lista możliwych dynamicznych typów danych
Wear OS obsługuje te typy danych dynamicznych:
Typ danych możesz też przekształcać za pomocą wbudowanych funkcji, takich jak:
DynamicInt32
obsługuje konwersję naDynamicString
za pomocąformat()
.DynamicDuration
umożliwia wyodrębnianie konkretnych części, takich jak sekundy czasu trwania, jako obiektyDynamicInt32
.
Używaj ograniczonej liczby wyrażeń dynamicznych na każdym ekranie
System ma ograniczoną liczbę wyrażeń dynamicznych, które może przetworzyć jednocześnie na określonym ekranie. System konwertuje dodatkowe wyrażenia dynamiczne na wartości statyczne.
Wear OS uznaje też wyrażenia stałe za wyrażenia dynamiczne. Na przykład ten fragment kodu zawiera 4 wyrażenia dynamiczne:
- Operacja
plus()
. - Operacja
animate()
. - Wyrażenie
constant(1)
. - Wyrażenie
constant(2)
, podane przez wartość2
w wyrażeniu dynamicznymplus()
.
DynamicInt32.constant(1).plus(2).animate()
Polecane dla Ciebie
- Uwaga: tekst linku wyświetla się, gdy JavaScript jest wyłączony
- Migracja do przestrzeni nazw ProtoLayout
- Efekty uboczne w funkcji Compose
- Krótkie informacje o AGSL