تغییر پویا محتوای عنصر

در حالی که Transform به شما امکان می دهد ظاهر عناصر یا گروه هایی از عناصر را تغییر دهید، ممکن است مواردی وجود داشته باشد که بخواهید بین لیستی از رفتارها بر اساس شرایطی جابجا شوید. این شبیه به دستور switch یا if…else در زبان های دیگر است.

برای مثال، ممکن است بخواهید پس‌زمینه متفاوتی را برای صبح زود، صبح، ناهار، بعد از ظهر، عصر و شب نشان دهید.

عبارات Condition در قالب Watch Face به شما این امکان را می دهد که بسته به ارزیابی عبارات، بخش های مختلفی از صحنه صفحه ساعت خود را بگنجانید، به عنوان مثال:

<Condition>
    <Expressions>
        <Expression name="is_early_morning">
            <![CDATA[[HOUR_0_23] >= 6 && [HOUR_0_23] < 8]]
        </Expression>
        <Expression name="is_morning">
            <![CDATA[[HOUR_0_23] < 12]]
        </Expression>
        ...
    </Expressions>
    <Compare expression="is_early_morning">
        <!-- Early morning content here -->
        <Group ... />
    </Compare>
    <Compare expression="is_morning">
        <!-- Morning content here -->
        <Group ... />
    </Compare>
    ...
    <!-- The "else" case -->
    <Default>
        <!-- content -->
    </Default>
</Condition>

چند نکته در مورد شرایط ذکر شده:

  1. اولین عنصر Compare که در آن expression true است استفاده می شود و سایر عناصر نادیده گرفته می شوند.
  2. با توجه به فرمت XML، اغلب می‌توان تعریف عبارت را در یک عنصر CDATA همانطور که در اینجا نشان داده شده است، آسان‌تر کرد، زیرا این امر از نیاز به فرار XML با استفاده از عناصر موجودی مانند &gt; و &amp; .
  3. ساختارهای Condition می توانند تو در تو باشند.