有时候做自定义控件时就会遇到命名冲突,改变有冲突的名字自然是最直接有效的方式,但是感觉很傻。我搜了下别人的解决方案,觉得很值得借鉴。就是把重名的属性,独立出来写一下,然后在定义时直接写属性名字即可。
比如:下面两个declare-styleable中icon重名了,我们就需要将icon独立出来写。
<? xml version = "1.0" encoding = "utf-8" ?> < resources > < declare-styleable name= "PreferenceHeader" > <!-- Identifier value for the header. --> < attr name= "id" format = "integer"/> < attr name= "icon" format = "integer" /> <!-- The fragment that is displayed when the user selects this item. --> </declare-styleable > < declare-styleable name= "Preference" > < attr name= "icon" format = "integer" /> <!-- The key to store the Preference value. --> < attr name= "key" format = "string" /> </declare-styleable > </ resources >
icon独立定义,就可以被多次引用了。
<? xml version = "1.0" encoding = "utf-8" ?> < resources > < attr name = "icon" format = "integer" /> < declare-styleable name= "PreferenceHeader" > <!-- Identifier value for the header. --> < attr name= "id" format = "integer"/> < attr name= "icon" /> </declare-styleable > < declare-styleable name= "Preference" > < attr name= "icon" /> <!-- The key to store the Preference value. --> < attr name= "key" format = "string" /> </declare-styleable > </ resources >
参考自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0929/1718.html