动态更改元素内容

虽然 Transform 允许您更改元素或元素组的外观,但在某些情况下,您可能希望根据某些条件在行为列表之间进行切换。这类似于其他语言中的 switch 语句或 if…else 语句。

例如,您可能希望为清晨、上午、午餐、下午、傍晚和夜间显示不同的背景。

Watch Face Format 中的 Condition 语句允许您根据表达式的求值结果,包含表盘场景的不同部分,例如:

<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 元素(其中 expressiontrue)将被使用,其他元素将被忽略。
  2. 由于 XML 格式的特点,通常最简单的做法是将表达式定义包装在 CDATA 元素中,如此处所示,这样可以避免使用实体元素(如 &gt;&amp;)进行 XML 转义。
  3. Condition 结构可以嵌套。