Пользовательские атрибуты в стиле
В моем текущем проекте styles.xml я пытаюсь определить:
<resources xmlns:ripple="http://schemas.android.com/apk/res-auto">
<resources xmlns:ripple="http://schemas.android.com/apk/res/com.gorkem.components">
и я использую это:
<style name="FlatTextRipple">
<item name="ripple:rv_centered">true</item>
<item name="ripple:rv_color">#CCCCCC</item>
<item name="ripple:rv_type">simpleRipple</item>
<item name="ripple:rv_zoom">true</item>
<item name="ripple:rv_zoomDuration">300</item>
</style>
и в моем проекте библиотеки у меня есть attrs.xml:
<declare-styleable name="RippleView">
<attr name="rv_alpha" format="integer" />
<attr name="rv_framerate" format="integer" />
<attr name="rv_rippleDuration" format="integer" />
<attr name="rv_zoomDuration" format="integer" />
<attr name="rv_color" format="color" />
<attr name="rv_centered" format="boolean" />
<attr name="rv_type" format="enum">
<enum name="simpleRipple" value="0" />
<enum name="doubleRipple" value="1" />
<enum name="rectangle" value="2" />
</attr>
<attr name="rv_ripplePadding" format="dimension" />
<attr name="rv_zoom" format="boolean" />
<attr name="rv_zoomScale" format="float" />
</declare-styleable>
Но я не понимаю, когда Í использовать его, как в макете, он работает, но когда я использую style.xml gradle не может приписать, и это дает мне эту ошибку:
Error:(6, 21) No resource found that matches the given name: attr 'ripple:rv_centered'.
Error:(7, 21) No resource found that matches the given name: attr 'ripple:rv_color'.
Error:(8, 21) No resource found that matches the given name: attr 'ripple:rv_type'.
Error:(9, 21) No resource found that matches the given name: attr 'ripple:rv_zoom'.
1 ответ
Стили не соответствуют тому, что вы делаете в макетах. В вашем styles.xml
, удали свой кастом xmlns
объявление, и просто используйте атрибуты напрямую без префикса, например так:
<style name="FlatTextRipple">
<item name="rv_centered">true</item>
<item name="rv_color">#CCCCCC</item>
<item name="rv_type">simpleRipple</item>
<item name="rv_zoom">true</item>
<item name="rv_zoomDuration">300</item>
</style>