成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

元數據綁定系列(一):元數據綁定的使用

開發 前端
元數據綁定框架是基于HarmonyOS SDK開發的一套提供UI和數據源綁定能力的框架。通過使用元數據綁定框架,HarmonyOS應用開發者無需開發繁瑣重復的代碼即可實現綁定UI和數據源。

[[420686]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

閱讀本文之前,建議您先閱讀 Codelabs:元數據綁定框架,讀實之后,跑一下代碼。并且帶著下面幾個問題閱讀。之后,我們一起探討這些問題:

  1. 元數據綁定的使用步驟,注意事項。
  2. 什么是元數據綁定?和數據綁定有什么區別?
  3. 元數據綁定能干什么?

相關推薦:元數據綁定系列(二):元數據綁定進階

元數據綁定的使用步驟,注意事項。

使用步驟我就不復制粘貼了,說一下注意事項:

1.不要忘記注解開關

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

 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.     } 

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

4.xml中引用元數據有兩種方式,別搞混

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

  •  <using-meta-data>

detail、list_item之類的頁面里。待綁定的數據由上一個頁面傳進來

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

5.Json Schema中的id與 xml布局文件中引用元數據 的schema字段相對應。

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

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

  1. <request-meta-data 
  2.     name="ClockMetaData" 
  3.     class="com.huawei.metadatabindingdemo.alarm.metadata.ClockRowMetaData"/>  

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

配置RequestSource

  1. <request-meta-data 
  2.     name="ClockMetaData" 
  3.     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. <request-meta-data 
  2.     name="ClockMetaData" 
  3.     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()之后才可以調用binding.getLayoutComponent();

什么是元數據綁定?和數據綁定有什么區別?

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

元數據即“描述數據的數據”。那么,我理解的“元數據綁定”應該是通過“元數據”的形式來實現數據綁定。

和“數據綁定”對比

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

元數據綁定能干什么?

單向綁定@{}

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

雙向綁定@={}

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

綁定自定義函數*{}

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

綁定資源文件${}

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

點擊事件觸發給元數據賦值#{}

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

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-09-01 14:36:14

鴻蒙HarmonyOS應用

2021-08-23 10:14:20

鴻蒙HarmonyOS應用

2010-07-30 11:03:54

Flex數據綁定

2016-10-27 13:40:02

編程語言 數據庫

2010-07-28 13:31:10

Flex數據綁定

2010-07-28 13:11:13

Flex數據綁定

2012-05-29 16:22:02

SpringMVC

2010-07-30 10:53:53

Flex數據綁定

2020-02-07 08:00:00

ExifTool提取文件開源

2010-08-12 10:43:19

Flex數據綁定

2010-07-28 13:40:44

Flex數據綁定

2011-12-05 13:44:34

JavaSpringMVC

2017-08-07 16:39:03

JSX動態數據

2009-07-28 08:24:16

GridView綁定數

2023-02-27 15:46:19

數據元元數據

2022-01-01 20:02:25

Metadata動態元數據

2023-10-07 11:04:58

WPF數據UI

2010-07-30 09:08:21

Flex數據綁定

2010-08-12 11:34:15

Flex數據綁定

2009-08-10 16:47:45

Visual C#數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品视频观看 | 四虎海外 | 久久国产综合 | 国产成人精品一区二区 | 中文字幕日本一区二区 | 欧美成人自拍 | 日韩色在线 | 久久精品国产一区二区三区不卡 | 精品视频导航 | 国产精品久久777777 | 日本不卡一区 | 免费欧美 | 中文字幕成人免费视频 | 天天碰日日操 | 国产欧美精品在线观看 | 99久9| 99热这里有精品 | 日韩成人免费中文字幕 | 国产乱码精品一区二区三区中文 | 国产精品美女久久久 | 精品视频一区二区三区四区 | 午夜影院在线观看 | 国产欧美一区二区精品忘忧草 | 久视频在线观看 | 一区二区三区国产精品 | 日韩精品久久一区 | 国产成人精品在线播放 | 中文字幕免费观看 | 欧美日韩在线免费 | 91av久久久 | 亚洲精品片 | 天天天操操操 | 欧美日韩高清一区 | 国产特级毛片aaaaaa | 中文字幕在线第一页 | 日日夜夜操天天干 | 国偷自产av一区二区三区 | 欧美日韩专区 | 在线看av网址 | 国产精品久久精品 | 亚洲一区免费在线 |