Data Binding ----android MVVM模式的依賴庫(kù)

Data Binding Library

本文檔解釋了如何使用Data Binding Library 來(lái)編寫(xiě)聲明式布局并把綁定應(yīng)用邏輯和布局的膠合代碼最小化。

它是一個(gè)兼容庫(kù)冒签,因此擁有很強(qiáng)的靈活性和兼容性,它可以兼容到android2.1.

想要使用本庫(kù)焚碌,android 的gradle版本要大于等于1.5。你可以在這里查看如何更新android Gradle插件。

集成環(huán)境


開(kāi)始使用data binding育苟,需要在Android SDK Manager中下載支持庫(kù)。

在app的build.gradle中添加如下代碼:

Data Binding Compiler V2


android Gradle Plugin 3.1.0 Canary 6 附帶的一個(gè)可選擇的編譯器醋闭,可以在gradle.properties 文件中添加一下代碼來(lái)調(diào)用:

? ? ? ? ? ? ? ? ?android.databinding.enableV2=true

新編譯器特性:

- ViewBinding 類在使用java編譯器之前由Gradle Plugin生成礼搁,以此避免java由于不相關(guān)原因編譯失敗出現(xiàn)大量的誤報(bào)錯(cuò)誤。

- libraries 會(huì)保留其生成綁定類和映射器的信息目尖,對(duì)于多模塊項(xiàng)目來(lái)說(shuō)能顯著提高數(shù)據(jù)綁定的性能馒吴。

Data Object(DO)

這是一個(gè)plain-old Java Object(POJO),這種類型的類都是一些死數(shù)據(jù)

也可以使用JavaBeans Object:

在data binding的角度來(lái)看瑟曲,這兩個(gè)類是等價(jià)的饮戳。

Binding Data


在默認(rèn)情況下,會(huì)根據(jù)布局文件的名字來(lái)生成一個(gè)Pascal格式以Binding結(jié)尾的Binding類洞拨。例如:布局文件名為main_activity扯罐,生成的Binding類為MainAcitivityBinding。這個(gè)類持有從layout 屬性到layout View所有的binding烦衣,還知道如何為binding表達(dá)式賦值歹河。

事件處理(Even Handing)


Data Binding允許你編寫(xiě)表達(dá)式來(lái)處理從View分發(fā)出來(lái)的事件(例如OnClick)。除少數(shù)例外花吟,事件屬性名由監(jiān)聽(tīng)方法的名字來(lái)管理秸歧。例如:View.OnLongClickListener有一個(gè)onLongClick()方法,所以在需要使用這個(gè)事件的控件需要添加的屬性為:android:onLongClick="@{對(duì)象::對(duì)象的方法}"? 衅澈。就是指定對(duì)象類里面的這個(gè)方法來(lái)替代onLongClick方法處理長(zhǎng)點(diǎn)擊后執(zhí)行的邏輯業(yè)務(wù)键菱。有兩種方法來(lái)實(shí)現(xiàn):

--Method References:在你的表達(dá)式中,可引用符合監(jiān)聽(tīng)器方法簽名的方法今布。Data Binding會(huì)將方法引用和其所有者對(duì)象包裝到監(jiān)聽(tīng)器中经备,然后將監(jiān)聽(tīng)器設(shè)置到對(duì)應(yīng)的View上。表達(dá)式為空部默,不創(chuàng)建監(jiān)聽(tīng)器侵蒙,而是設(shè)置空監(jiān)聽(tīng)。

--Listener Bindings:這種方法的表達(dá)式為lambda表達(dá)式傅蹂。無(wú)論如何Data BInding都會(huì)給View設(shè)置一個(gè)監(jiān)聽(tīng)器纷闺,當(dāng)事件發(fā)生時(shí)才會(huì)判斷表達(dá)式是否為空。

前一個(gè)先判斷表達(dá)式是否為空在創(chuàng)建監(jiān)聽(tīng)器贬派,后一個(gè)不判斷直接設(shè)置急但,執(zhí)行時(shí)才判斷。

Method References

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搞乏,一起剝皮案震驚了整個(gè)濱河市波桩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌请敦,老刑警劉巖镐躲,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件储玫,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡萤皂,警方通過(guò)查閱死者的電腦和手機(jī)撒穷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)裆熙,“玉大人端礼,你說(shuō)我怎么就攤上這事∪肼迹” “怎么了蛤奥?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)僚稿。 經(jīng)常有香客問(wèn)我凡桥,道長(zhǎng),這世上最難降的妖魔是什么蚀同? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任缅刽,我火速辦了婚禮,結(jié)果婚禮上蠢络,老公的妹妹穿的比我還像新娘衰猛。我一直安慰自己,他們只是感情好谢肾,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布腕侄。 她就那樣靜靜地躺著小泉,像睡著了一般芦疏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上微姊,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天酸茴,我揣著相機(jī)與錄音,去河邊找鬼兢交。 笑死薪捍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的配喳。 我是一名探鬼主播酪穿,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼晴裹!你這毒婦竟也來(lái)了被济?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤涧团,失蹤者是張志新(化名)和其女友劉穎只磷,沒(méi)想到半個(gè)月后经磅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钮追,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年预厌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片元媚。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡轧叽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刊棕,到底是詐尸還是另有隱情犹芹,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布鞠绰,位于F島的核電站腰埂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蜈膨。R本人自食惡果不足惜屿笼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翁巍。 院中可真熱鬧驴一,春花似錦、人聲如沸灶壶。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)驰凛。三九已至胸懈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恰响,已是汗流浹背趣钱。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胚宦,地道東北人首有。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像枢劝,于是被迫代替她去往敵國(guó)和親井联。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容