android Data Binding(05自定義屬性)

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)了

image.png

image.png
image.png

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

我們引BindingAdapter


image.png

在我們布局文件引用


image.png

image.png

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

image.png
image.png

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


image.png
image.png

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



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


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



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


i

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

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

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容