版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengxu_kuangrexintu/article/details/81870966
起因
我在res/values/atts.xml
文件中定义了tabTextSize
属性。使用的时候是没有问题,但是我在编译的过程就产生了Error: Found item Attr/tabTextSize more than one time
,这句话的意思是错误:发现项目attr/TabTrimeScrize定义不止一次
,开始的时候百思不得其解,于是我去看了attr里面定义的属性。发现下面的显示的那样:
<resources>
<declare-styleable name="View名称">
<attr name="tabTextSize" format="float"/>
<attr name="tabTextSelectedColor" format="color" />
<attr name="tabTextUnselectedColor" format="color" />
</declare-styleable>
<declare-styleable name="View名称">
<attr name="tabTextSize" format="float"/>
<attr name="tabTextSelectedColor" format="color" />
<attr name="tabTextUnselectedColor" format="color" />
</declare-styleable>
</resources>
由于自定义View属性名称相同所以产生了上面开始提到的错误。
解决方法
解决方法,我把其中相同的属性抽出来定义就可以。如下面所示将<attr name="tabTextSize" format="float" />
抽来,然后在每个View里面调用就可以了。
<resources>
<attr name="tabTextSize" format="float"/>
<declare-styleable name="View名称">
<attr name="tabTextSize" />
<attr name="tabTextSelectedColor" format="color" />
<attr name="tabTextUnselectedColor" format="color" />
</declare-styleable>
<declare-styleable name="View名称">
<attr name="tabTextSize"/>
<attr name="tabTextSelectedColor" format="color" />
<attr name="tabTextUnselectedColor" format="color" />
</declare-styleable>
</resources>