Har*_*rry 5 android android-databinding two-way-binding
我正在通过阅读官方文档来学习数据绑定。除了双向绑定中可能存在的无限循环之外,一切都是有意义的。根据双向绑定的官方文档:
使用双向数据绑定时请注意不要引入无限循环。当用户更改属性时,将调用使用 @InverseBindingAdapter 注释的方法,并将值分配给支持属性。反过来,这将调用使用@BindingAdapter注释的方法,这将触发对使用@InverseBindingAdapter注释的方法的另一个调用,依此类推。
我理解声明的第一部分,@InverseBindingAdapter如果属性发生更改并且新值分配给支持属性,则将调用注释方法。
但我不明白的是,为什么 在这个过程中@InverseBindingAdapter调用method时又@BindingAdapter调用method,以及如何导致无限循环?
我想迟到总比不到好:) 无限循环发生的原因InverseBindingAdapter基本上是变化的观察者。因此,当用户更改某些内容时,onChangedInverseBindingAdapter 中的观察者就会被触发并执行一些逻辑。因此,然后BindingAdapter也会对字段中的更改做出反应并再次更新值,以便InverseBindingAdapter再次触发更改监听器,而不是我们处于循环中。
这是一些视觉效果
查看我在 Medium 上关于高级数据绑定的文章,它实际上使用 ViewPager 和 2 路绑定示例描述了这种情况。(是的,无耻的自插免责声明)
| 归档时间: |
|
| 查看次数: |
1416 次 |
| 最近记录: |