什么时候应该使用 InverseBindingAdapter?
When should InverseBindingAdapter be used?
为什么 Android DataBinding 中需要 InverseBindingAdapter
,我们应该什么时候使用它?
Inverse
这个词实际上包含了您需要了解的所有内容,如果您想到 DataBinding 的实际作用的话。
如果您为 Layout
启用 DataBinding,您可以将其视为一对两件事:
View
(Views
全部包含在<layout></layout>
中)
Model
(<data></data>
中包含的所有变量)
常规数据绑定 确保 Model
中的更改将在 View
中产生影响。它由 @{expression}
.
调用
Inverse DataBinding 确保 View
中的更改将在 Model
中产生影响。它由 @={expression}
调用(=
字符在这里必不可少)。
如果您认为在 View
中进行更改的方法有哪些,可以是:
- 内容更改(例如
TextView
中的文字)
- 检查状态的变化(例如
RadioGroup
)
- 焦点变化
- ...
其中一些是默认启用的,对于其他您需要编写自定义 InverseBindingAdapter
。更多关于 here.
如果您还需要有关该主题的更多信息,我建议您观看 Google I/O 2016 presentation on Advanced DataBinding。
为什么 Android DataBinding 中需要 InverseBindingAdapter
,我们应该什么时候使用它?
Inverse
这个词实际上包含了您需要了解的所有内容,如果您想到 DataBinding 的实际作用的话。
如果您为 Layout
启用 DataBinding,您可以将其视为一对两件事:
View
(Views
全部包含在<layout></layout>
中)Model
(<data></data>
中包含的所有变量)
常规数据绑定 确保 Model
中的更改将在 View
中产生影响。它由 @{expression}
.
Inverse DataBinding 确保 View
中的更改将在 Model
中产生影响。它由 @={expression}
调用(=
字符在这里必不可少)。
如果您认为在 View
中进行更改的方法有哪些,可以是:
- 内容更改(例如
TextView
中的文字) - 检查状态的变化(例如
RadioGroup
) - 焦点变化
- ...
其中一些是默认启用的,对于其他您需要编写自定义 InverseBindingAdapter
。更多关于 here.
如果您还需要有关该主题的更多信息,我建议您观看 Google I/O 2016 presentation on Advanced DataBinding。