2016-03-29 13 views
0

私は、次のスタイルがあります。カスタムタイプのAndroid属性?

<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 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> 

を。同じ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> 

これらすべてのスタイルがまったく同じ書式と属性を使用しているので、私は何でもビューおよび着色値が扱う一つの機能を持っていますそれに渡された。問題は、色や機能を追加できるようにしたいということです。だから私が1つを変えれば、私はそれらのすべてを変えなければならない。これは非常に面倒であり、変更を行うのにかかる時間は指数関数的に増加します。

宣言スタイルで属性の親/スーパー/カスタムフォーマットを設定するにはどうすればよいですか?

答えて