一张图告诉你如何使用Databinding

我写了很多,然后我都删除了,我画了一个图,欢迎查看
http://naotu.baidu.com/file/8e15463fd972aae76d059f3f88e6c09b?token=dd46d350d0c14a9d

备注:使用Databinding需要在gradle的android代码块里添加

    dataBinding {
        enabled = true
    }

注意:如果使用组件化,如DDComponent,需要在主Module里加上上面的代码,如果需要单独运行组件,要在组件里也加上,不然会无法生成Databinding所需要的代码

参考了很多文章,只记住了一个。。。留一下链接:
https://juejin.im/post/5a55ecb6f265da3e4d7298e9

推荐插件
关于DataBinding我推荐使用插件生成,方便快捷很多

  1. DataBindingModelFormatter
    快捷生成实现Observable的数据模型

  2. DataBindingSupport
    自动生成DataBinding所需的XML格式

关于找不到ViewModelProviders这个类
有很多文章提到了ViewModelProviders这个类,但是默认Android Studio打开dataBinding {enabled = true}是没有ViewModelProviders这个类的,因为AS默认包含的了ViewModelLiveData但是没有包含扩展,所以加上下面这句话就可以了

api "android.arch.lifecycle:extensions:$jetpack"

其中jetpack是你当前用的Databinding的版本号

关于java.lang.NoClassDefFoundError: Failed resolution of: Landroid/databinding/DataBinderMapperImpl
估计遇到这种问题的都用了组件化,组件里写了dataBinding {enabled = true}但是主组件没写,然后运行主组件的时候报错了,只需要在主组件里也加上dataBinding {enabled = true}就可以了

推荐阅读更多精彩内容