MVVM的使用之標籤含義

繼上一篇,mvvm的特性就是databinding,主要在xml中增加了一些標籤,這些標籤在使用中大大方便了開發,節省了項目中的代碼量,減少冗餘代碼,但帶來的負面的影響也是,就是不熟悉databinding時候入門,studio報BR找不到的錯誤,這個時候你去看日誌在大多數情況下是看不出來的,這個時候就要在xml佈局中增加的代碼一一排查了,很煩。我就自己總結下,因爲絕大數產生的問題的原因都是因爲不知道導致。

1. layout標籤;如果要是用databinding開發,就必須要在原有佈局的最外層包裹一層layout標籤,類似android中ScrollView的控件,只能有一個子View,另外還有個小標註,fragment標籤不支持layout,具體原因不知,記住就好

2. data標籤;主要用來承載數據,在其內部可以定義多個import和variable的標籤

3. class標籤; 控制生成的Binding的名稱及其所在路徑,默認情況下是不去使用的

4. variable標籤;用來定義變量,是java代碼和xml佈局的紐帶,可定義多個,name值不可一樣,type值可以相同,type表示數據源所在路徑,name表示數據源在這個xml佈局中引用的名稱;可以定義基本類型(int,string,bollean等),還可以定義實體數據,另外重要的一點就是可以定義非數據類,比如一些監聽器之類的

5. import標籤,導入包,可以直接使用某個類的靜態方法或者靜態字段,其中alias的作用就是當多個import的type值相同的時候,需要這個屬性來做區分

@註釋的一些方法的含義

1. @BindingMethods---當xml屬性名稱和源碼中的set方法名稱不一致時,用這種方法綁定

2. @BindingAdapter---很多時候源碼中沒有提供set方法,則通過這個方法來實現,具體就像ImageView通過設置url來加載圖片等其他一下操作;後面的括號中有value和requireAll兩種屬性,謳歌是String數組,包含其所有自定義的屬性,另外一個就是是否需要設置在value中的所有屬性,默認爲true。另外還有兩個注意點就是在xml中需要自己手動import,這個註解的方法必須static

3. @BindingConversion---方法註釋,當自定義的屬性和setter方法中需要的參數不符合提供轉換的方法,注:當databinding中碰到參數不對應的時候,會自動檢索此標註下的方法,有就調用,這個也必須是static的方法






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章