什么时候应该使用 InverseBindingAdapter?

When should InverseBindingAdapter be used?

为什么 Android DataBinding 中需要 InverseBindingAdapter,我们应该什么时候使用它?

Inverse 这个词实际上包含了您需要了解的所有内容,如果您想到 DataBinding 的实际作用的话。 如果您为 Layout 启用 DataBinding,您可以将其视为一对两件事:

  1. ViewViews全部包含在<layout></layout>中)
  2. Model<data></data>中包含的所有变量)

常规数据绑定 确保 Model 中的更改将在 View 中产生影响。它由 @{expression}.

调用

Inverse DataBinding 确保 View 中的更改将在 Model 中产生影响。它由 @={expression} 调用(= 字符在这里必不可少)。


如果您认为在 View 中进行更改的方法有哪些,可以是:

  • 内容更改(例如 TextView 中的文字)
  • 检查状态的变化(例如 RadioGroup
  • 焦点变化
  • ...

其中一些是默认启用的,对于其他您需要编写自定义 InverseBindingAdapter。更多关于 here.


如果您还需要有关该主题的更多信息,我建议您观看 Google I/O 2016 presentation on Advanced DataBinding