Android的Databinding-須要使用控件id,listener以及佈局有include的場景

主的佈局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

相關文章
相關標籤/搜索