Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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
自定义android属性上是否有条件语句?_Android_Xml_Attr - Fatal编程技术网

自定义android属性上是否有条件语句?

自定义android属性上是否有条件语句?,android,xml,attr,Android,Xml,Attr,大多数人都知道,在Android中,可以为自定义视图提供自定义属性。例如,在中对这一点进行了非常精辟的解释。然而,我的问题是: 只有在满足另一个条件时,才可能呈现此类属性吗? 我的意思是这样的(伪代码): 另一种方法是按照ilomambo在回答中的建议:创建具有不同名称的各种自定义视图,并让它们只具有属于它们的属性 但是我非常想问自己,是否有可能一开始就不把.xml文件的程序员搞糊涂,只把他真正需要的东西放在一个地方。毕竟,当使用布局权重时,当提示视图的宽度或高度应设置为0dp时,已经用Andr

大多数人都知道,在Android中,可以为自定义视图提供自定义属性。例如,在中对这一点进行了非常精辟的解释。然而,我的问题是:


只有在满足另一个条件时,才可能呈现此类属性吗?

我的意思是这样的(伪代码):

另一种方法是按照ilomambo在回答中的建议:创建具有不同名称的各种自定义视图,并让它们只具有属于它们的属性

但是我非常想问自己,是否有可能一开始就不把.xml文件的程序员搞糊涂,只把他真正需要的东西放在一个地方。毕竟,当使用
布局权重时,当提示视图的宽度或高度应设置为
0dp
时,已经用Android(好吧……IDE/Lint/解析器…)所做的方式进行了

但是如果我不得不猜测的话,我会说只有重写Android XML解析器才有可能。。。有人能证明我错了吗


提前感谢

如果我理解正确,您有一个自定义视图,可以在第三个属性上获得不同的属性

为了让XML程序员了解非法属性,我建议使用以下两种方法之一:

  • (简单方法)为每个“名称”创建一个自定义视图,并为每个“名称”创建自己的
    declare styleable

    <resources>
        <declare-styleable name="ClockCustomView">
            <attr . . . />
        </declare-styleable>
        <declare-styleable name="OtherCustomView">
            <attr . . . />
        </declare-styleable>
        <!-- Common attributes are declared outside declare-styleable -->
        <attr . . . />
    </resources>
    
    
    关于XSD的更多信息,如果你也用谷歌搜索的话,网上有很多信息


  • 你所做的是错误的“只有在满足另一个条件时才可能呈现这样的属性吗?”--好的,不。是的,你理解正确。方法1。这就是我现在用自己作为临时解决方案的方法。我一有时间研究XSD就会回来报告,非常感谢already@avalancha记住,通过方法2,你可以做你想做的事情,甚至更多。要付出的代价是你必须学会如何正确书写。如果您使用Eclipse,那么您会注意到,当您编辑XML文件时,您可以从右键单击上下文菜单对其进行验证。
    <resources>
        <declare-styleable name="ClockCustomView">
            <attr . . . />
        </declare-styleable>
        <declare-styleable name="OtherCustomView">
            <attr . . . />
        </declare-styleable>
        <!-- Common attributes are declared outside declare-styleable -->
        <attr . . . />
    </resources>