主的佈局xml文件:java
1 <layout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:bind="http://schemas.android.com/apk/res-auto"> 3 4 <data> 5 6 <import type="com.liangfeizc.databinding.model.User" /> 7 <variable 8 name="user" 9 type="User" /> 10 <variable 11 name="listener" 12 type="com.liangfeizc.databinding.listener.OkListener" /> 13 <variable 14 name="okText" 15 type="String" /> 16 </data> 17 18 <LinearLayout 19 android:layout_width="match_parent" 20 android:layout_height="match_parent" 21 android:orientation="vertical"> 22 23 <include 24 android:id="@+id/layout_input" 25 layout="@layout/layout_input" /> 26 27 <include 28 layout="@layout/user" 29 bind:user="@{user}" /> 30 31 <include 32 layout="@layout/layout_btn_ok" 33 bind:okText="@{okText}" 34 bind:listener="@{listener}"/> 35 </LinearLayout> 36 </layout>
本佈局一共包含3個include佈局,第一個是一個普通的佈局,裏面沒有<data></data>, 考慮的就是如何經過id獲取控件的引用。binding.layoutInput.etName binding是綁定的對象,layoutInput和etName就是Id,至於爲啥沒有了下劃線_ , 由於這個id也是自動生成的。android
第二個佈局,須要傳遞User這個pojo類,因此要在<data>中引入,而同時也須要定義一個類別(看上面代碼第二行)把user對象進行傳遞。git
第三個佈局較爲複雜,須要傳遞listener和text,一樣也須要一個類別進行傳遞。github
本節參考代碼。app