Android开发规范技巧DataBanding

【Android Jetpack】- DataBinding

2019-10-19  本文已影响0人  拔萝卜占坑

简介

实现数据的双向绑定,接收数据的更改同时监听用户对数据的更新

集成

参照官网DataBinding集成

使用

binding.dataBindingMode = dataBindingMode,如果用java写,其实就是调用ActivityDataBindingBinding的setDataBindingMode方法,将数据modle传进去,里面会将用到的数据绑定到布局上,如果你想查看ActivityDataBindingBinding可以反编译你的apk,得到dex转jar查看。ActivityDataBindingBinding的实现类ActivityDataBindingBindingImpl也可以“build/source/kapt”目录下找到或者全局搜索,实现比较简单,自行查看。

更多用法

完成参考:data-binding

  1. 布局使用
    <ImageView
       ...
       app:imageFromUrl="@{dataBindingMode.imageUrl}"/>
     <TextView
        ...
        app:isGone="@{true}"/>
    
    isGone方法有个默认参数'view',如果适配器方法需要传递多个字段,那么改怎么写呢?
    @BindingAdapter("imageUrl", "error")
    fun loadImage(view: ImageView, url: String, error: Drawable) {
        Picasso.get().load(url).error(error).into(view)
    }
    
    <ImageView app:imageUrl="@{venue.imageUrl}" app:error="@{@drawable/venueError}" />
    
    DataBinding提供的适配器,可以查看'databindng-adapter'适配器库

理解原理

这部分可以自己去查看,使用DataBinding生成的对应实现类。

上一篇 下一篇

猜你喜欢

热点阅读