android data binding jetpack VIII BindingConversionhtml
android data binding jetpack VII @BindingAdapterandroid
android data binding jetpack V 實現recyclerview 綁定app
android data binding jetpack IV 綁定一個方法另外一種寫法和參數傳遞佈局
android data binding jetpack III 綁定一個方法post
android data binding jetpack II 動態數據更新url
android data binding jetpack I 環境配置 model-view 簡單綁定spa
解決前面 item imageview若是和一個url綁定,怎麼來展現。3d
BindingAdapter code
字面意思:綁定適配???xml
推薦大神文章:https://www.jianshu.com/p/686bfc58bbb0
再也不多說了。記錄本身的理解。
當要給一個View綁定一個數據,但數據不能直接知足需求。好比用一個View來展現金錢。格式是:$1000.00。
若是返回數據只有1000.00咱們要加上$符。直接把數字綁定給view就不能知足了。
如今須要創建新的綁定過程。
能夠這樣寫:
@BindingAdapter("android:text") public static void setTxt(final TextView tv, String str) { tv.setText("$:" + str); }
這個方法能夠扔在任何一個類裏。註解要自動解析並起做用。註解的引入有時候讓程序變得難以理解。
佈局綁定不變。
結果:
在全部的textview text 綁定裏都起做了。說明這個綁定規則是全局。
因此也不能這麼改了。
觀察一下實現過程:
整個定義的意思是:如今咱們在全局創建一個綁定規則的,對於這個屬性,使用
這個方法來綁定。
若是自定義一個規則以下:
@BindingAdapter("app:money") public static void setMoney(final TextView tv, String str) { tv.setText("$:" + str); }
而後在xml中使用。把原來的text改回去。
app這個命空間說是隨便起,由於運行過程會忽略。
看結果:
正是咱們想要的,字符前面加了$.也就是咱們定義的運算結果。
回過來看前面的代碼:
給ImageView 加了一個屬性規則叫:,然xml中綁定使用。最終展現了一個圖片資源對imageview.
更深刻理解請看官言文檔和源碼。
總結:1.BindingAdapter是建一個綁定規則。
2.這個規則寫在哪兒都行。
3.是全局的,全部人通用。
聲明:本系列文字可能不太嚴謹,請閱讀者自我甄別。