Атрибуты пользовательского представления Android - «цвет» как имя атрибута запрещено

1

Я сделал простой пользовательский вид - "ColorSwatch". Он круговой, показывает назначенный цвет, и если этот цвет имеет прозрачность, цвет рисуется поверх шаблона проверки. Вид отлично работает.

Моя проблема в том, что когда я определяю пользовательские атрибуты для swatch (в values/attrs_color_swatch_view.xml), я не могу указать атрибут с именем "color". Компилятор жалуется, что цвет уже определен и указывает на мой файл colors.xml. В качестве обходного пути я назвал параметр swatchColor, но я предпочел бы просто быть color.

Файл: values/attrs_color_swatch_view.xml

<resources>
    <declare-styleable name="ColorSwatchView">
        <attr name="swatchColor" format="color"/><!-- would prefer to simply be 'color', not 'swatchColor' -->
        <attr name="selectionThickness" format="dimension"/>
        <attr name="isSelected" format="boolean"/>
        <attr name="selectionColor" format="color"/>
        <attr name="alphaCheckerSize" format="dimension" />
    </declare-styleable>
</resources>

Можно ли использовать имя атрибута color? Или это зарезервированное ключевое слово? Можно ли каким-либо образом пропустить пространство имен для моего представления?

Теги:
android-custom-view
android-xml

1 ответ

2
Лучший ответ

Вы не можете использовать color по той же причине, которую не можете использовать background. Они уже определены в пространстве имен android.

Итак, как использовать color или любое другое имя атрибута, которое зарезервировано? Используя те, которые уже определены, а не создают новые.

Вместо:

<attr name="swatchColor" format="color"/>

используйте это:

<attr name="android:color"/>

Всегда следите за тем, чтобы вы использовали те, которые были установлены андроидом. Только если вы считаете, что это не соответствует вашим потребностям, продолжайте и создайте свой собственный атрибут.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню