android databinding 分不清的特殊字符 @{} @={} @{()->}

76 阅读1分钟
  • @{} 单向数据绑定

val userName=ObservableField()

<TextView
    android:text="@{viewmodel.userName}" />

参考:developer.android.google.cn/topic/libra…

  • @={} 双向数据绑定
val rememberMe=ObservableBoolean()
<CheckBox
    android:id="@+id/rememberMeCheckBox"
    android:checked="@={viewmodel.rememberMe}"
/>

其中最重要的是包含“=”签名,接收数据 更改属性,并同时监听用户更新。

  • @{()->xx} 绑定匿名方法、匿名函数
<layout xmlns:android="http://schemas.android.com/apk/res/android">
 
    <data>
        <variable
            name="viewModel"
            type="com.example.ViewModel" />
    </data>
 
    <LinearLayout
        ...>
 
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Click Me"
            android:onClick="@{() -> viewModel.onButtonClicked()}" />
 
    </LinearLayout>
</layout>