在使用的第三方控件下拉刷新的时候,发现有这几行代码:
ptr:ptrAnimationStyle="flip" ptr:ptrHeaderBackground="#ffffff" ptr:ptrHeaderSubTextColor="#666666" ptr:ptrHeaderTextColor="#666666"
开始也没搞清楚是怎么回事,
然后发现该控件源码value 文件夹下的attri.xml 文件加下定义了这一属性,
<declare-styleable name="PullToRefresh"> <!-- A drawable to use as the background of the Refreshable View --> <attr name="ptrRefreshableViewBackground" format="reference|color" /> <!-- A drawable to use as the background of the Header and Footer Loading Views --> <attr name="ptrHeaderBackground" format="reference|color" /> <!-- Text Color of the Header and Footer Loading Views --> <attr name="ptrHeaderTextColor" format="reference|color" />
定义一个属性,需要制定他的属性名和他的参数格式
这里用一个toolbar 看下注意事项
让我们再来看看布局xml中需要注意的事项。
首先得声明一下:xmlns:toolbar=http://schemas.android.com/apk/res/cn.zzm.toolbar
注意,“toolbar”可以换成其他的任何名字,后面的url地址必须最后一部分必须用上自定义组件的包名。自定义属性了,在属性名前加上“toolbar”即可。
最后来看看java代码中的注意事项。
在自定义组件的构造函数中,用
TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.ToolBar);
来获得对属性集的引用,然后就可以用“a”的各种方法来获取相应的属性值了。这里需要注意的是,如果使用的方法和获取值的类型不对的话,则会返回默认值。因此,如果一个属性是带两个及以上不用类型的属性,需要做多次判断,知道读取完毕后才能判断应该赋予何值。当然,在取完值的时候别忘了回收资源哦!