日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
元數(shù)據(jù)綁定系列(一):元數(shù)據(jù)綁定的使用

想了解更多內(nèi)容,請?jiān)L問:

和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.

閱讀本文之前,建議您先閱讀 Codelabs:元數(shù)據(jù)綁定框架,讀實(shí)之后,跑一下代碼。并且?guī)е旅鎺讉€問題閱讀。之后,我們一起探討這些問題:

  1. 元數(shù)據(jù)綁定的使用步驟,注意事項(xiàng)。
  2. 什么是元數(shù)據(jù)綁定?和數(shù)據(jù)綁定有什么區(qū)別?
  3. 元數(shù)據(jù)綁定能干什么?

相關(guān)推薦:元數(shù)據(jù)綁定系列(二):元數(shù)據(jù)綁定進(jìn)階

元數(shù)據(jù)綁定的使用步驟,注意事項(xiàng)。

使用步驟我就不復(fù)制粘貼了,說一下注意事項(xiàng):

1.不要忘記注解開關(guān)

 
 
 
 
  1. ohos { 
  2.     compileOptions { 
  3.         annotationEnabled true 
  4.     } 
  5. }

 2.不要忘記初始化

 
 
 
 
  1. @MetaDataApplication(requireData = true, exportData = false) 
  2. public class MyApplication extends AbilityPackage { 
  3.     @Override 
  4.     public void onInitialize() { 
  5.         super.onInitialize(); 
  6.         MetaDataFramework.init(this); 
  7.     }
  8. }

3.Feature中使用 元數(shù)據(jù)綁定,Json Schema文件必須放在Entry的resource/rawfile.jsonschema路徑下。

4.xml中引用元數(shù)據(jù)有兩種方式,別搞混

  •  
 
 
 
 
  1.     name="ClockMetaData"
  2.     schema="com.example.meta-data.alarm"/>

  •  

detail、list_item之類的頁面里。待綁定的數(shù)據(jù)由上一個頁面?zhèn)鬟M(jìn)來

 
 
 
 
  1.     name="ClockMetaData"
  2.     schema="com.example.meta-data.alarm"/>

5.Json Schema中的id與 xml布局文件中引用元數(shù)據(jù) 的schema字段相對應(yīng)。

 
 
 
 
  1.   "id": "com.example.meta-data.alarm", //和xml中的schema對應(yīng),必須一樣!
  2.   "title": "alarm schema", 
  3.   "$schema": "http://json-schema.org/draft-04/schema#", 
  4.   "description": "alarm description",   
  5.   "type": "object",   
  6.   "properties": { 
  7.   } 
  8. }

6.在xml中不訪問metaData中的自定義方法時,可以不指定class;否則必須指定。

 
 
 
 
  1.     name="ClockMetaData"
  2.     class="com.huawei.metadatabindingdemo.alarm.metadata.ClockRowMetaData"/> 

7.java代碼中配置元數(shù)據(jù)(和xml中是等價的)

配置RequestSource

 
 
 
 
  1.     name="ClockMetaData"
  2.     uri="dataability:///com.huawei.metadatabindingdemo.db.AlarmsDataAbility"/>
 
 
 
 
  1. //java代碼中的等價配置:
  2. MetaDataRequestInfo request = new MetaDataRequestInfo.Builder()
  3.         .setRequestSource("ClockMetaData",
  4.                 "dataability:///com.huawei.metadatabindingdemo.db.AlarmsDataAbility")

配置MetaDataClass

 
 
 
 
  1.     name="ClockMetaData"
  2.     class="com.huawei.metadatabindingdemo.alarm.metadata.ClockRowMetaData"/>
 
 
 
 
  1. //java代碼中的等價配置:
  2. MetaDataRequestInfo request = new MetaDataRequestInfo.Builder()
  3.     .setMetaDataClass("ClockMetaData", ClockRowMetaData.class)

8.待綁定元素必須要有id

9.待綁定字段命名空間要使用metaDataBinding

10.requestBinding()或reBinding()之后才可以調(diào)用binding.getLayoutComponent();

什么是元數(shù)據(jù)綁定?和數(shù)據(jù)綁定有什么區(qū)別?

百度百科中講:“元數(shù)據(jù)(Metadata),又稱中介數(shù)據(jù)、中繼數(shù)據(jù),為描述數(shù)據(jù)的數(shù)據(jù)(data about data),主要是描述數(shù)據(jù)屬性(property)的信息”

元數(shù)據(jù)即“描述數(shù)據(jù)的數(shù)據(jù)”。那么,我理解的“元數(shù)據(jù)綁定”應(yīng)該是通過“元數(shù)據(jù)”的形式來實(shí)現(xiàn)數(shù)據(jù)綁定。

和“數(shù)據(jù)綁定”對比

  • 定義上:最大的區(qū)別就是綁定的對象不一樣,前者綁定“元數(shù)據(jù)”,后者綁定ActiveData。
  • 使用上:元數(shù)據(jù)綁定是擴(kuò)展包引入,數(shù)據(jù)綁定是sdk內(nèi)置
  • 功能上:元數(shù)據(jù)綁定更強(qiáng)大一些。后者只有單向綁定、雙向綁定的功能。
  • 內(nèi)部實(shí)現(xiàn)上:元數(shù)據(jù)綁定基于APT(Annotation Processing Tool)即注解處理器。數(shù)據(jù)綁定怎么實(shí)現(xiàn)的我也不知道,還請高人告知一二!

元數(shù)據(jù)綁定能干什么?

單向綁定@{}

 
 
 
 
  1.     metaDataBinding:text="@{ClockMetaData.message}"/>

雙向綁定@={}

 
 
 
 
  1.     metaDataBinding:text="@={ClockMetaData.message}"/>

綁定自定義函數(shù)*{}

 
 
 
 
  1.     metaDataBinding:text="*{ClockMetaData.getTimeZone(@{ClockMetaData.hour})}"/>

綁定資源文件${}

 
 
 
 
  1.     metaDataBinding:image_src="${Media_icon_switch_enabled}"/>

點(diǎn)擊事件觸發(fā)給元數(shù)據(jù)賦值#{}

 
 
 
 
  1.     metaDataBinding:onClick="#{ClockMetaData.enabled = (@{ClockMetaData.enabled} == 1 ? 0 : 1)}"/>

想了解更多內(nèi)容,請?jiān)L問:

和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.


當(dāng)前標(biāo)題:元數(shù)據(jù)綁定系列(一):元數(shù)據(jù)綁定的使用
當(dāng)前地址:http://www.5511xx.com/article/cocoiop.html