0
我有以下樣式:自定義類型的Android屬性?
<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>
由於所有這些樣式使用完全相同的格式和屬性,我有一個函數來處理任何觀點和着色值傳遞給它。問題是我希望能夠添加更多的顏色和/或功能。所以如果我改變它,我必須改變它們。這是非常單調乏味的,而且進行修改所花費的時間卻成倍增加。
如何爲聲明樣式中的屬性設置父/超/自定義格式?