虽然 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>
关于条件的几点注意事项:
- 第一个
Compare
元素(其中expression
为true
)将被使用,其他元素将被忽略。 - 由于 XML 格式的特点,通常最简单的做法是将表达式定义包装在
CDATA
元素中,如此处所示,这样可以避免使用实体元素(如>
和&
)进行 XML 转义。 Condition
结构可以嵌套。