android 如何使用生成枚举值|其中

eyh26e7m  于 2023-01-07  发布在  Android
关注(0)|答案(2)|浏览(144)

我声明了一个包含枚举的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"

cxfofazt

cxfofazt1#

使用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相同(但您可以同时使用两者)。

j2qf4p5b

j2qf4p5b2#

<flag/>可以是多个,如gravity ="中心|左"
<enum/>必须为单个,如layout_height ="wrap_content"

相关问题