«

菜鸟的安卓实习之路---自定义控件的属性

时间:2024-3-2 17:03     作者:韩俊     分类: Html+Css


在使用的第三方控件下拉刷新的时候,发现有这几行代码:

 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”的各种方法来获取相应的属性值了。这里需要注意的是,如果使用的方法和获取值的类型不对的话,则会返回默认值。因此,如果一个属性是带两个及以上不用类型的属性,需要做多次判断,知道读取完毕后才能判断应该赋予何值。当然,在取完值的时候别忘了回收资源哦!

标签: javascript html css

热门推荐