主的布局xml文件:
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也是自動生成的。
第二個布局,需要傳遞User這個pojo類,所以要在<data>中引入,而同時也需要定義一個類別(看上面代碼第二行)把user對象進行傳遞。
第三個布局較為復雜,需要傳遞listener和text,同樣也需要一個類別進行傳遞。
