
鸿蒙开源三方组件------自定义注解布局样式Barber 精华
1.Barber简介
一个自定义视图样式库。提供了一个简单的基于自定义注释@StyledAttr的style接口来定义视图样式。通过自定义注释@StyledAttr和@Required,将xml中自定义属性与代码中的变量绑定赋值,保证在不修改代码只调整xml即可达到调整视图的效果。注解@OhosAttr主要针对ohos自身属性,使用方式和@StyledAttr一致。
2.使用一览
2.1注解@StyledAttr的使用
在主界面ability_main.xml中定义如下属性:
在BarberView.java代码中使用注解@StyledAttr(value = ResourceTable.String_stripeColor, kind = Kind.COLOR),如下图:
不需要再对这三个变量进行赋值,通过注解已经绑定到xml的对应属性,并赋值,直接使用即可,如下图:
2.2注解@OhosAttr的使用
OhosAttr的使用和StyleAttr相类似,Xml中定义top_margin为140vp,如图所示:
定义变量mTop_margin,使用注解@OhosAttr,mTop_margin不赋值,直接打印mTop_margin, 日志中可以看到mTop_margin成功赋值,为 xml中的ohos:top_margin的值,如下图所示:
3.根因分析
在app编译之前,注解编译器编译生成了BarberView$$Barbershop.java文件,对xml进行了解析,并且对注解变量进行了赋值,相当于注解变量和xml属性进行了绑定。
BarberView$$Barbershop.java文件为注解编译器根据compile相关代码自动生成,会根据xml中定义属性变化发生变化。
例如,2.1操作生成的注解文件BarberView$$Barbershop.java代码如下:
4.如何集成Barber库
4.1方式一
自行编译工程sample,生成api-debug.har,
将其添加到要集成的libs文件夹内,在sample的gradle内添加如下代码:
4.2方式二
Barber库已经在maven发布,你可以使用如下依赖引用:
5.下载链接
5.1GitHub源码链接:
https://github.com/hzsweers/barber
5.2Gitee链接:
