在androidxml中重新使用自定义格式
考虑定义为的自定义xml枚举在androidxml中重新使用自定义格式,android,xml,enums,Android,Xml,Enums,考虑定义为的自定义xml枚举 <attr name="myProperty"> <enum name="None" value="0"/> <enum name="One" value="1"/> <enum name="Two" value="2"/> <enum name="Three" value="3"/> <enum name="Four" value="4"/> &
<attr name="myProperty">
<enum name="None" value="0"/>
<enum name="One" value="1"/>
<enum name="Two" value="2"/>
<enum name="Three" value="3"/>
<enum name="Four" value="4"/>
<enum name="Five" value="5"/>
<enum name="Six" value="6"/>
<enum name="Seven" value="7"/>
<enum name="Eight" value="8"/>
<enum name="Nine" value="9"/>
<enum name="Ten" value="10"/>
</attr>
我正在使用此枚举,如下所示
<declare-styleable name="MyUnrelatedControl">
<attr name="myProperty" />
</declare-stylable>
但问题是,假设我有两个相同格式的属性(自定义枚举),如何实现这一点。比如说
<declare-styleable name="MyUnrelatedControl">
<attr name="unrelatedControl1" /> <!-- format=myProperty -->
<attr name="unrelatedControl2" /> <!-- format=myProperty -->
</declare-stylable>
像左边距、右边距、上边距、下边距一样,都采用相同的格式维度
。类似地,我想定义一种格式,并将其用于同一个declare stylable中的不同属性
谢谢你的帮助。没有解决办法。原因是这样的枚举定义不应该被重用。对于每个属性,都需要定义一组单独的可能值。当你观察机器人时,这是显而易见的:
所以看来你想做的事情是不可能的 没有解决办法。原因是这样的枚举定义不应该被重用。对于每个属性,都需要定义一组单独的可能值。当你观察机器人时,这是显而易见的:
所以看来你想做的事情是不可能的 我怀疑是否存在解决办法。看看它在框架中的使用方式。枚举在
layout\u width
和layout\u height
定义中重复。你可以从中看出,我怀疑是否存在解决方案。看看它在框架中的使用方式。枚举在layout\u width
和layout\u height
定义中重复。你可以在这张照片上看到
<declare-styleable name="ViewGroup_Layout">
<!-- Specifies the basic width of the view. This is a required attribute
for any view inside of a containing layout manager. Its value may
be a dimension (such as "12dip") for a constant width or one of
the special constants. -->
<attr name="layout_width" format="dimension">
<!-- The view should be as big as its parent (minus padding).
This constant is deprecated starting from API Level 8 and
is replaced by {@code match_parent}. -->
<enum name="fill_parent" value="-1" />
<!-- The view should be as big as its parent (minus padding).
Introduced in API Level 8. -->
<enum name="match_parent" value="-1" />
<!-- The view should be only big enough to enclose its content (plus padding). -->
<enum name="wrap_content" value="-2" />
</attr>
<!-- Specifies the basic height of the view. This is a required attribute
for any view inside of a containing layout manager. Its value may
be a dimension (such as "12dip") for a constant height or one of
the special constants. -->
<attr name="layout_height" format="dimension">
<!-- The view should be as big as its parent (minus padding).
This constant is deprecated starting from API Level 8 and
is replaced by {@code match_parent}. -->
<enum name="fill_parent" value="-1" />
<!-- The view should be as big as its parent (minus padding).
Introduced in API Level 8. -->
<enum name="match_parent" value="-1" />
<!-- The view should be only big enough to enclose its content (plus padding). -->
<enum name="wrap_content" value="-2" />
</attr>
</declare-styleable>
<declare-styleable name="ViewGroup_MarginLayout">
<attr name="layout_width" />
<attr name="layout_height" />
...
</declare-styleable>