DataBinding的使用,请戳这里,本文主要是介绍DataBinding原理

1. DataBinding作用,实现一个MVVM

2. DataBinding使用的主要技术点,Java APT,观察者,注解等

3. DataBinding关键类

ActivityMainBindingImpl 具体实现了绑定

ViewDataBinding 持有activity或者fragment和View的引用,主要作用一次遍历View,实例化所有子View,并存储在数组中,这里解决了findviewbyid性能问题,同时为我们省去了findviewbyid的操作

BR 类似Android R文件

DataBinderMapperImpl 提供了布局文件layoutid到ViewDataBinding类对象的映射,主要用于加载layout返回对应的ViewDataBinding对象

4. DataBinding如何实现双向绑定的

如图:

Android DataBinding原理分析

DataBinding在编译时会生成一个ViewDataBinding的子类xxBinding,例如ActivityMainBinding,ActivityMainBinding默认持有了View和Model和Activity/Fragment,在ActivityMainBinding里面有个关键方法,excuteBinding(),在这里为View设置值,同时设置了BindingAdapter和InverseBindingLinstener,如上图所示。BindingAdapter主要是提供了View的set get方法和状态Linstener。

5. DataBinding的缺点,查问题比较难,其它暂未发现

相关文章:

  • 2022-12-23
  • 2021-05-19
  • 2021-07-28
  • 2021-08-17
  • 2021-09-17
  • 2021-11-11
  • 2022-12-23
猜你喜欢
  • 2021-10-24
  • 2021-12-12
  • 2021-05-25
  • 2021-12-04
  • 2022-01-18
  • 2022-02-28
  • 2021-06-05
相关资源
相似解决方案