我有以下风格:
<attr name="coloring" format="enum">
<enum name="Custom" value="0"/>
<enum name="Black" value="1"/>
<enum name="Gray" value="2"/>
<enum name="LightGray" value="3"/>
<enum name="White" value="4"/>
</attr>
我想多次应用相同的样式:
<declare-styleable name="ComplicatedViewGroup">
<attr name="child1coloring" **format="coloring"**/>
<attr name="child2coloring" **format="coloring"**/>
<attr name="child3coloring" **parent="coloring"**/>
<attr name="child4coloring" **parent="coloring"**/>
<attr name="child5coloring" **super="coloring"**/>
</declare-styleable>
或类似的东西。我希望能够使用相同的attr轻松自定义子视图。如果这是不可能的,那么非常凌乱且大而且非常快:
<attr name="coloring" format="enum">
<enum name="Custom" value="0"/>
<enum name="Black" value="1"/>
<enum name="Gray" value="2"/>
<enum name="LightGray" value="3"/>
<enum name="White" value="4"/>
</attr>
<declare-styleable name="ComplicatedViewGroup">
<attr name="child1coloring" format="enum">
<enum name="Custom" value="0"/>
<enum name="Black" value="1"/>
<enum name="Gray" value="2"/>
<enum name="LightGray" value="3"/>
<enum name="White" value="4"/>
</attr>
<attr name="child2coloring" format="enum">
<enum name="Custom" value="0"/>
<enum name="Black" value="1"/>
<enum name="Gray" value="2"/>
<enum name="LightGray" value="3"/>
<enum name="White" value="4"/>
</attr>
<attr name="child3coloring" format="enum">
<enum name="Custom" value="0"/>
<enum name="Black" value="1"/>
<enum name="Gray" value="2"/>
<enum name="LightGray" value="3"/>
<enum name="White" value="4"/>
</attr>
<attr name="child4coloring" format="enum">
<enum name="Custom" value="0"/>
<enum name="Black" value="1"/>
<enum name="Gray" value="2"/>
<enum name="LightGray" value="3"/>
<enum name="White" value="4"/>
</attr>
<attr name="child5coloring" format="enum">
<enum name="Custom" value="0"/>
<enum name="Black" value="1"/>
<enum name="Gray" value="2"/>
<enum name="LightGray" value="3"/>
<enum name="White" value="4"/>
</attr>
</declare-styleable>
由于所有这些样式都使用完全相同的格式和属性,因此我有一个函数可以处理传递给它的任何视图和着色值。问题是我希望能够添加更多颜色和/或功能。所以,如果我换一个,我必须改变所有这些。这非常繁琐,而且进行更改所需的时间会成倍增加。
如何在声明样式中为属性设置父/超/自定义格式?