DataBinding 使用总结

DataBinding

  • 简介
    • DataBinding 是谷歌发布的框架数据绑定框架
    • 是MVVM在android上的实现.用于降低布局和逻辑的耦合性,使代码看起来更简介
    • DataBinding 能省去FindViewById() ,减少Activity内的代码
    • 能够单向或则双向绑定到layout
    • 有助于防止内存泄漏
    • 能自动进行空值检测避免空指针异常
  • 使用步骤
    • 在对应model的build.gradle里加入如下代码

  • 数据绑定方式
    • BaseObservalbe
      • 使用场景:数据的双向绑定 ,
      • 使用方式:需要数据双向绑定的类继承这个类就能实现

      • 提供的方法
        • notifyChange()
          • 会刷新所有的值域
        • nfitfyPropertyChanged()
          • 只更新对应 BR 的 flag,该 BR 的生成通过注释 @Bindable 生成,可以通过 BR notify 特定属性关联的视图
        • addOnPropertyChangedCallback
          • 监听属性改变的方法
    • ObservableField
      • 使用场景 :数据的双向绑定
      • 使用方式:对需要进行数据双向绑定的类的属性进行设置

      • 原生封装了对基本类型的绑定方式
        • ObservableBoolean、
        • ObservableByte、
        • ObservableChar、
        • ObservableShort、
        • ObservableInt、
        • ObservableLong、
        • ObservableFloat、
        • ObservableDouble
        • ObservableParcelable
    • ObservableCollection
      • 使用场景 list,map 等集合类的数据绑定
      • 使用方式:
        • 1,布局引入

        • 2,代码进行数据的初始化和绑定

  • 单向数据绑定
  • 双向数据绑定
  • 事件绑定
    • android:onClick
    • android:onLongClick
    • android:afterTextChanged
    • android:onTextChanged
  • 使用类的方法

  • 运算符
    • 算术 + - / * %
    • 字符串合并 +
    • 逻辑 && ||
    • 二元 & | ^
    • 一元 + - ! ~
    • 移位 >> >>> <<
    • 比较 == > < >= <=
    • Instanceof
    • Grouping ()
    • character, String, numeric, null
    • Cast
    • 方法调用
    • Field 访问
    • Array 访问 []
    • 三元 ?:
  • BindingAdapter
    • dataBinding 提供了 BindingAdapter 这个注解用于支持自定义属性,或者是修改原有属性。

  • BindingConversion
    • dataBinding 还支持对数据进行转换,或者进行类型转换

  • 参考