想了解更多内容,请访问:
和华为官方合作共建的鸿蒙技术社区
https://harmonyos.
阅读本文之前,建议您先阅读 Codelabs:元数据绑定框架,读实之后,跑一下代码。并且带着下面几个问题阅读。之后,我们一起探讨这些问题:
相关推荐:元数据绑定系列(二):元数据绑定进阶
使用步骤我就不复制粘贴了,说一下注意事项:
1.不要忘记注解开关
- ohos {
- compileOptions {
- annotationEnabled true
- }
- }
2.不要忘记初始化
- @MetaDataApplication(requireData = true, exportData = false)
- public class MyApplication extends AbilityPackage {
- @Override
- public void onInitialize() {
- super.onInitialize();
- MetaDataFramework.init(this);
- }
- }
3.Feature中使用 元数据绑定,Json Schema文件必须放在Entry的resource/rawfile.jsonschema路径下。
4.xml中引用元数据有两种方式,别搞混
- name="ClockMetaData"
- schema="com.example.meta-data.alarm"/>
detail、list_item之类的页面里。待绑定的数据由上一个页面传进来
- name="ClockMetaData"
- schema="com.example.meta-data.alarm"/>
5.Json Schema中的id与 xml布局文件中引用元数据 的schema字段相对应。
- {
- "id": "com.example.meta-data.alarm", //和xml中的schema对应,必须一样!
- "title": "alarm schema",
- "$schema": "http://json-schema.org/draft-04/schema#",
- "description": "alarm description",
- "type": "object",
- "properties": {
- }
- }
6.在xml中不访问metaData中的自定义方法时,可以不指定class;否则必须指定。
- name="ClockMetaData"
- class="com.huawei.metadatabindingdemo.alarm.metadata.ClockRowMetaData"/>
7.java代码中配置元数据(和xml中是等价的)
配置RequestSource
- name="ClockMetaData"
- uri="dataability:///com.huawei.metadatabindingdemo.db.AlarmsDataAbility"/>
- //java代码中的等价配置:
- MetaDataRequestInfo request = new MetaDataRequestInfo.Builder()
- .setRequestSource("ClockMetaData",
- "dataability:///com.huawei.metadatabindingdemo.db.AlarmsDataAbility")
配置MetaDataClass
- name="ClockMetaData"
- class="com.huawei.metadatabindingdemo.alarm.metadata.ClockRowMetaData"/>
- //java代码中的等价配置:
- MetaDataRequestInfo request = new MetaDataRequestInfo.Builder()
- .setMetaDataClass("ClockMetaData", ClockRowMetaData.class)
8.待绑定元素必须要有id
9.待绑定字段命名空间要使用metaDataBinding
10.requestBinding()或reBinding()之后才可以调用binding.getLayoutComponent();
百度百科中讲:“元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息”
元数据即“描述数据的数据”。那么,我理解的“元数据绑定”应该是通过“元数据”的形式来实现数据绑定。
和“数据绑定”对比
单向绑定@{}
- metaDataBinding:text="@{ClockMetaData.message}"/>
双向绑定@={}
- metaDataBinding:text="@={ClockMetaData.message}"/>
绑定自定义函数*{}
- metaDataBinding:text="*{ClockMetaData.getTimeZone(@{ClockMetaData.hour})}"/>
绑定资源文件${}
- metaDataBinding:image_src="${Media_icon_switch_enabled}"/>
点击事件触发给元数据赋值#{}
- metaDataBinding:onClick="#{ClockMetaData.enabled = (@{ClockMetaData.enabled} == 1 ? 0 : 1)}"/>
想了解更多内容,请访问:
和华为官方合作共建的鸿蒙技术社区
https://harmonyos.
文章标题:元数据绑定系列(一):元数据绑定的使用
文章路径:http://www.csdahua.cn/qtweb/news23/340973.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网