这篇文章主要介绍了机器人中自定义控件的可声明样式的属性重用方案,本文给出了一个终极重用解决方案,需要的朋友可以参考下
最近接触了机器人自定义控件,涉及到自定义可扩展标记语言中得属性(属性),其实也很简单,但是写着写着,发现代码不完美了,就是在attrs.xml这个文件中,发现属性冗余,于是就想有没有类似属性继承或者包括之类的方法。本文将就可声明样式中属性重用记录一下。
不完美的代码
复制代码代码如下:
?可扩展标记语言版本='1.0 '编码='utf-8 '?
资源
declare-styleable name=' ext view '
attr name=上启用' format=' boolean '/
attr name=' supportDeviceType ' format=' reference '/
/declare-styleable
declare-styleable name=' ExEditText '
attr name=上启用' format=' boolean '/
attr name=' supportDeviceType ' format=' reference '/
/declare-styleable
/资源
如上面代码,在ExTextView和注释文本这个可造型的中有着重复的属性申明。虽然上面可以工作,但是总感觉写的不专业,于是寻找优化方法。
这样可以么
尝试着为可声明样式指定一个父母,如下代码
复制代码代码如下:
?可扩展标记语言版本='1.0 '编码='utf-8 '?
资源
declare-styleable name=' ext view '
attr name=上启用' format=' boolean '/
attr name=' supportDeviceType ' format=' reference '/
/declare-styleable
declare-styleable name=' ExEditText ' parent=' ext ext view '
/declare-styleable
/资源
attrs.xml没有报告语法错误。但是当我使用r . styleable。exedittext _ supportDeviceType时候,R文件却没有生成,重新清理了工程还是不生效,不知道是否为雄激素阻断治疗插件的问题。其他人也遇到了这样的问题。这个方法目前是不行的。
终极答案
实际上我们可以在可声明样式之前,申明要多次使用的属性,在可声明样式节点内部,只需调用即可。具体代码如下。
复制代码代码如下:
?可扩展标记语言版本='1.0 '编码='utf-8 '?
资源
attr name=上启用' format=' boolean '/
attr name=' supportDeviceType ' format=' reference '/
declare-styleable name=' ext view '
attr name='enableOnPad'/
attr name='supportDeviceType'/
/declare-styleable
declare-styleable name=' ExEditText '
attr name='enableOnPad'/
attr name='supportDeviceType'/
/declare-styleable
/资源
每次引用属性后,建议清理一下工程,确保稀有文件重新生成。
延伸阅读
http://堆栈溢出。com/questions/18827875/how-to-declare-something-stylable-attributes-with-the-same-name-for-different-tags
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。