Android 数据绑定是否将UI逻辑移出布局?

Android 数据绑定是否将UI逻辑移出布局?,android,data-binding,android-databinding,Android,Data Binding,Android Databinding,我对数据绑定非常陌生,我刚刚开始了解安卓数据绑定库,还有一件事让我很头疼 通过将ViewModel组件与数据绑定库一起使用,您可以将UI逻辑移出布局并移入更易于测试的组件中 紧接着,在布局XML中有这样的内容: <CheckBox android:id="@+id/rememberMeCheckBox" android:checked="@{viewmodel.rememberMe}" android:onCheckedChanged="@{() -> vie

我对数据绑定非常陌生,我刚刚开始了解安卓数据绑定库,还有一件事让我很头疼

通过将ViewModel组件与数据绑定库一起使用,您可以将UI逻辑移出布局并移入更易于测试的组件中

紧接着,在布局XML中有这样的内容:

<CheckBox
    android:id="@+id/rememberMeCheckBox"
    android:checked="@{viewmodel.rememberMe}"
    android:onCheckedChanged="@{() -> viewmodel.rememberMeChanged()}" />


也许只是我,但是
onCheckedChanged
属性在布局中包含的“逻辑”不是比从活动或片段在“哑”布局上调用
setoncheckedchangelister()
的老式方法多得多吗?这一切似乎有点矛盾。有人能给我解释一下数据绑定是如何将“UI逻辑移出布局”的吗?

您的
ViewModel
现在保存了逻辑,您可以独立于UI进行测试,并且可以使用模拟的
ViewModel
s对UI进行测试。它的代码并不总是较少,而是遵循模式的结构化代码