在佈局中import引入類java
<data> <import type="android.view.View" alias="MyView"/>
在佈局中可使用表達式android
<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="test" android:visibility="@{user.isAdult ? MyView.VISIBLE : MyView.GONE}"/>
能夠在佈局中讓對象調用public方法app
ndroid:text="@{user.printTest()}" public String printTest() { return "測試打印"; }
能夠在佈局中導入類型,而且調用靜態方法佈局
public class Test { public static String print(String content) { return "this is Test.print() : "+content; } }
<import type="com.example.lin.myapplication.model.Test"/>
<TextView android:layout_width="wrap_content" android:text="@{Test.print(user.firstName)}" android:layout_height="wrap_content" />
在佈局中能夠像java代碼中導入類型,在變量聲明時候再也不寫全類的包名測試
<import type="com.example.lin.myapplication.model.User"/> <variable name="user" type="User"/>
佈局中聲明變量this
<variable name="testStr" type="String"/>
binding類就會有 這個testStr變量的 get set方法code
Null Coalescing 運算符對象
使用資源數據事件
<dimen name="large_sp">20sp</dimen> <dimen name="small_sp">10sp</dimen>
<variable name="large" type="boolean"/>
android:textSize="@{large? @dimen/large_sp : @dimen/small_sp}"
在onClick事件中寫上ci
binding.setLarge(!binding.getLarge());
能夠進行大小的切換