我写了很多,然后我都删除了,我画了一个图,欢迎查看
http://naotu.baidu.com/file/8e15463fd972aae76d059f3f88e6c09b?token=dd46d350d0c14a9d
备注:使用Databinding需要在gradle的android代码块里添加
dataBinding {
enabled = true
}
注意:如果使用组件化,如DDComponent,需要在主Module里加上上面的代码,如果需要单独运行组件,要在组件里也加上,不然会无法生成Databinding所需要的代码
参考了很多文章,只记住了一个。。。留一下链接:
https://juejin.im/post/5a55ecb6f265da3e4d7298e9
推荐插件
关于DataBinding我推荐使用插件生成,方便快捷很多
DataBindingModelFormatter
快捷生成实现Observable的数据模型DataBindingSupport
自动生成DataBinding所需的XML格式
关于找不到ViewModelProviders这个类
有很多文章提到了ViewModelProviders
这个类,但是默认Android Studio打开dataBinding {enabled = true}
是没有ViewModelProviders
这个类的,因为AS默认包含的了ViewModel
和LiveData
但是没有包含扩展,所以加上下面这句话就可以了
api "android.arch.lifecycle:extensions:$jetpack"
其中jetpack
是你当前用的Databinding
的版本号
关于java.lang.NoClassDefFoundError: Failed resolution of: Landroid/databinding/DataBinderMapperImpl
估计遇到这种问题的都用了组件化,组件里写了dataBinding {enabled = true}
但是主组件没写,然后运行主组件的时候报错了,只需要在主组件里也加上dataBinding {enabled = true}
就可以了