如何使用|来创建枚举值在他们中

时间:2014-06-12 07:46:33

标签: android xml enums declare-styleable

我宣布了一个Android自定义视图 其中有一个枚举

   <attr name="ff_type" format="enum">
            <enum name="small" value="1" />
            <enum name="big" value="32" />
            <enum name="medium" value="8288" />

        </attr>

如何在我的自定义视图的xml中允许app:ff_type="small|medium"

1 个答案:

答案 0 :(得分:1)

使用flag而不是enum

<attr name="ff_type" format="flag">
    <flag name="small" value="1" />
    <flag name="big" value="32" />
    <flag name="medium" value="8288" />
</attr>

包含format="flag"是可选的。

8288是一个奇怪的选择,你更好地坚持2的权力。现在是8288 = 32 * 259。因此,您无法在不隐含medium的情况下选择big

<attr name="ff_type">
    <flag name="small" value="1" />
    <flag name="medium" value="2" />
    <flag name="big" value="4" />
</attr>

然后您可以选择添加其他值作为快捷方式:

<attr name="ff_type">
    <flag name="small" value="1" />
    <flag name="medium" value="2" />
    <flag name="big" value="4" />
    <flag name="smallerThanBig" value="3" />
</attr>

所以这里smallerThanBigsmall|medium相同(但你可以同时使用)。