Как сделать перечислимые значения с | в них

Я объявил пользовательское представление 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"?

2 ответа

Решение

Использование 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>

Так вот smallerThanBig такой же как small|medium (но вы можете использовать оба).

<flag/>может быть несколько, например,gravity="center|left",
но<enum/>должен быть один, например layout_height="wrap_content"

Другие вопросы по тегам