android data binding jetpack VII @BindingAdapter

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.是全局的,全部人通用。

 

 

聲明:本系列文字可能不太嚴謹,請閱讀者自我甄別。

相關文章
相關標籤/搜索