عبارات پویا در Wear OS
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Wear OS از بهروزرسانیهای پویا برای اطلاعاتی که در کاشیها و پیچیدگیهای شما ظاهر میشوند، پشتیبانی میکند.
با استفاده از عبارات پویا، میتوانید دادههایی را که روی سطح برنامهتان ظاهر میشوند – مانند کاشی یا پیچیدگی – به یک منبع داده خاص متصل کنید. نمونه ای از چنین منبع داده ای داده های ضربان قلب است که پلتفرم می تواند آنها را بخواند. پس از اینکه این اتصال را برقرار کردید، سیستم دادههای کاشیها و عوارض شما را بهطور خودکار بهروزرسانی میکند.
پیوندهای داده پویا ایجاد کنید
برای ایجاد یک اتصال داده پویا، متغیری را تعریف کنید که از نوع داده پویا استفاده می کند. این متغیر را با جریان داده ای که می خواهید استفاده کنید مرتبط کنید.
برای مثال، همانطور که در قطعه کد زیر نشان داده شده است، می توانید مقادیر مربوط به ساعت سیستم و اطلاعات سلامتی را واکشی کنید.
کاتلین
val systemTime = DynamicInstant.platformTimeWithSecondsPrecision()
val steps: DynamicInt32 = PlatformHealthSources.dailySteps()
جاوا
DynamicInstant systemTime = DynamicInstant.platformTimeWithSecondsPrecision();
DynamicInt32 steps = PlatformHealthSources.dailySteps();
همچنین میتوانید مقادیر پویا را از عبارات ثابت ایجاد کنید و عملیات حسابی را روی هر مقدار دینامیکی انجام دهید، همانطور که در قطعه زیر نشان داده شده است:
کاتلین
val dynamicValue = DynamicInt32.constant(1).plus(2)
جاوا
DynamicInt32 dynamicValue = DynamicInt32.constant(1).plus(2)
فهرست انواع داده های پویا ممکن
Wear OS از انواع داده های پویا زیر پشتیبانی می کند:
علاوه بر این، میتوانید نوع داده را با استفاده از قابلیتهای داخلی تغییر دهید، مانند موارد زیر:
-
DynamicInt32
از تبدیل به DynamicString
با استفاده از format()
پشتیبانی می کند. -
DynamicDuration
به شما امکان می دهد بخش های خاصی مانند قسمت ثانیه ای یک مدت زمان را به عنوان اشیاء DynamicInt32
استخراج کنید.
از تعداد محدودی از عبارات پویا در هر صفحه استفاده کنید
این سیستم محدودیتی در تعداد عبارات پویا دارد که می تواند به طور همزمان در یک صفحه خاص پردازش کند. سیستم هر عبارت پویا اضافی را به مقادیر ثابت تبدیل می کند.
Wear OS عبارات ثابت را نیز عباراتی پویا در نظر می گیرد. به عنوان مثال، قطعه کد زیر شامل 4 عبارت پویا است:
- عملیات
plus()
. - عملیات
animate()
. - عبارت
constant(1)
. - عبارت
constant(2)
که با مقدار 2
در عبارت پویا plus()
مشخص می شود.
DynamicInt32.constant(1).plus(2).animate()
{% کلمه به کلمه %}
{% آخر کلمه %} برای شما توصیه می شود
{% کلمه به کلمه %} {% آخر کلمه %}
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Dynamic expressions in Wear OS\n\nWear OS supports dynamic updates to information that appears in your [tiles](/training/wearables/tiles)\nand [complications](/training/wearables/tiles/complications).\n\nUsing dynamic expressions, you can bind data that appears on a surface of your\napp--such as a tile or complication--to a particular data source. An example of\nsuch a data source is heart rate data that the platform can read. After you've\nestablished this binding, the system updates the data in your tiles and\ncomplications automatically.\n\nCreate dynamic data bindings\n----------------------------\n\nTo create a dynamic data binding, define a variable that uses a\n[dynamic data type](#data-types). Associate this variable with the data stream that you\nwant to use.\n\nFor example, you can fetch values related to the system clock and health\ninformation, as shown in the following code snippet.\n| **Note:** To access the data in [`PlatformHealthSources`](/reference/androidx/wear/protolayout/expression/PlatformHealthSources), you must [request a\nruntime permission](/training/permissions/requesting) in your app. \n\n### Kotlin\n\n```kotlin\nval systemTime = DynamicInstant.platformTimeWithSecondsPrecision()\nval steps: DynamicInt32 = PlatformHealthSources.dailySteps()\n```\n\n### Java\n\n```java\nDynamicInstant systemTime = DynamicInstant.platformTimeWithSecondsPrecision();\nDynamicInt32 steps = PlatformHealthSources.dailySteps();\n```\n\nYou can also create dynamic values from constant expressions and perform\narithmetic operations on any dynamic value, as shown in the following snippet: \n\n### Kotlin\n\n```kotlin\nval dynamicValue = DynamicInt32.constant(1).plus(2)\n```\n\n### Java\n\n```java\nDynamicInt32 dynamicValue = DynamicInt32.constant(1).plus(2)\n```\n\n### List of possible dynamic data types\n\nWear OS supports the following dynamic data types:\n\n- [`DynamicBool`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicBool)\n- [`DynamicColor`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicColor)\n- [`DynamicDuration`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicDuration)\n- [`DynamicFloat`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicFloat)\n- [`DynamicInstant`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicInstant)\n- [`DynamicInt32`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicInt32)\n- [`DynamicString`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicString)\n\nIn addition, you can transform the data type using built-in capabilities, such\nas the following:\n\n- `DynamicInt32` supports conversion to a `DynamicString` using [`format()`](/reference/androidx/wear/protolayout/expression/DynamicBuilders.DynamicInt32#format()).\n- `DynamicDuration` lets you extract specific parts, such as the seconds part of a duration, as `DynamicInt32` objects.\n\nUse a limited number of dynamic expressions on each screen\n----------------------------------------------------------\n\nThe system has a limit on the number of dynamic expressions that it can process\nsimultaneously on a particular screen. The system converts any additional\ndynamic expressions to static values.\n\nWear OS considers constant expressions to be dynamic expressions, too. For\nexample, the following code snippet contains 4 dynamic expressions:\n\n1. The `plus()` operation.\n2. The `animate()` operation.\n3. The `constant(1)` expression.\n4. The `constant(2)` expression, which is implied by the value `2` in the `plus()` dynamic expression.\n\n DynamicInt32.constant(1).plus(2).animate()\n\nRecommended for you\n-------------------\n\n- Note: link text is displayed when JavaScript is off\n- [Migrate to ProtoLayout namespaces](/training/wearables/tiles/migrate-to-protolayout)\n- [Side-effects in Compose](/develop/ui/compose/side-effects)\n- [AGSL Quick Reference](/develop/ui/views/graphics/agsl/agsl-quick-reference)"]]