android Data Binding(01 入門篇)
http://www.itdecent.cn/p/7a9ddf4f1301
android Data Binding(02 數(shù)據(jù)刷新)
http://www.itdecent.cn/p/59fc32f1f0aa
android Data Binding(03 點擊事件)
http://www.itdecent.cn/p/b83c83dbc43d
android Data Binding(04 雙向綁定 和布局倒入)
http://www.itdecent.cn/p/94a17cd869d5
android Data Binding(05自定義屬性)
http://www.itdecent.cn/p/2edff6132d3b
android Data Binding(06 列表綁定)
http://www.itdecent.cn/p/5c91bf49e057
android Data Binding(07 零散匯總)
http://www.itdecent.cn/p/882a2169868b
中秋節(jié)過了,國慶還遠么?
這次玩點有意思點,我們上次說的自定義屬性?
先講下@BindingMethods,這個我個人認為屬于類擴展,為什么呢?
一些View一些屬性雖然擁有setters但是并不與名字相匹配,這些方法的屬性可以通過 @BindingMethod && @BindingMethods 注釋 setters,其實開發(fā)人員不太可能需要重命名 setters ,因為android框架屬性已經(jīng)實現(xiàn)了這一部分。
找了半天,就拿ImageView的tint來展示下,其實tint也已經(jīng)框架實現(xiàn)了



運行一下,其實我們寫不寫,BindShow那個類,出來效果也是這樣的,其實,就是如果Imageview沒有setTint方法,我們會走setImageTintList這個正確的方法,你可以理解為,android 默認設置某屬性,應該是調(diào)用set屬性名,但是如果沒有set屬性名這個方法,就應該去調(diào)用set屬性真實名字,其實對著寫一次就好了,干說很難理解。
好吧,這個感覺可有可無的過去,我們開啟新的一段歡樂時光,關于“自定義屬性”,為什么加引號,其實我感覺這個也就在dadabinding里面能用,出去就涼了
我們引BindingAdapter

在我們布局文件引用


我們輸入老王,看看效果怎么樣,發(fā)現(xiàn)輸入的是老王,顯示的確實leo--老王,我們發(fā)現(xiàn)方法被調(diào)用了


其實通過這個小例子,我們可以得出,所謂自定義屬性,當屬性用在參數(shù)匹配上的 時候,就可以被調(diào)用
我們將這個屬性用在Imageview上試試,發(fā)現(xiàn)報錯了,是因為這個屬性的第一個參數(shù)是TextView和ImageView匹配不上,所以報錯,


那我們寫個ImageVIew的試下
我們的目的是通過自定義屬性可以實現(xiàn)自動加載網(wǎng)絡圖片,寫好我們的自定義屬性

布局調(diào)用,user傳入值


我們看到方法調(diào)用成功

也就是說以后我們可以直接一個屬性,對著URL做很多事,比如自動加載頁面,再也不用findView然后去Glideload那么麻煩,可以一個屬性搞定
有一個問題很好奇,我直接在這個自定義屬性里寫入一段文本可以么?

答案是不行,原因未知等待大家告知我

好吧,下一篇我們寫一下如何在列表里使用DataBinding
android Data Binding(06 列表綁定)
地址鏈接 http://www.itdecent.cn/p/5c91bf49e057