Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在androidxml中重新使用自定义格式_Android_Xml_Enums - Fatal编程技术网

在androidxml中重新使用自定义格式

在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"/> &

考虑定义为的自定义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"/>
    <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>