vue做的网站百度抓取,外贸建站用什么平台好,网站建设管理职责,企业网站制作教程视频为什么写这篇博客
网上大部分博客#xff0c;代码量都比较大#xff0c;把实际的业务都代入进去了
这篇博客的目的#xff0c;就是为了讲解基本原理和使用思路#xff0c;然后给出一个最简单的Demo
这里不讲解具体用法#xff0c;那样篇幅会太长#xff0c;直接看Demo…为什么写这篇博客
网上大部分博客代码量都比较大把实际的业务都代入进去了
这篇博客的目的就是为了讲解基本原理和使用思路然后给出一个最简单的Demo
这里不讲解具体用法那样篇幅会太长直接看Demo代码就行
什么是ViewBinding
ViewBinding是一项根据布局文件自动生成所有控件对象的技术类似于ButterKnife
使用ViewBinding需要在gradle脚本中开启ViewBinding特性编译时会自动生成Layout对应的Binding对象
什么是DataBinding
DataBinding是一项将控件内容与对象数值进行绑定的技术
当控件内容发生改变时对象数值自动改变
当对象数值发生改变时控件内容也自动改变
android中的DataBinding主要是通过ViewModel和LiveData这两项技术来实现的
使用ViewBinding需要在gradle脚本中开启DataBinding特性这样才能使用ViewModel相关功能
什么是ViewModel和LiveData
ViewModel是一个特殊的数值容器它可以与布局中的控件进行双向绑定从而实现数值自动同步
ViewModel的生命周期与Activity或Fragment进行绑定能够自动销毁
LiveData也是一个特殊的数值容器它可以对数值变化进行监听从而实现响应式编程特性
ViewModel和LiveData使用方法
定义ViewModel其中的数值通过LiveData包装
在xml中通过layout标签data标签变量表达式的方式来让控件与ViewModel中的值绑定
在Activity中创建ViewModel
在Activity中为ViewModel中的LiveData添加数值监听
在Activity中为ViewModel设置初始值
将ViewModel与Binding绑定
布局内容发生变化时LiveData会自动更新
手动修改LiveData时需要通过setValue或postValue来通知订阅者
如何通过ViewModel和LiveData实现MVVM架构
创建ViewModel将布局文件中需要绑定的属性添加到其中
在ViewModel中创建DataRepository用于获取和处理数据这个类就是负责model层工作
在Activity中通过ViewModel订阅DataRepository处理结果处理结果可以通过LiveData或RxJava来订阅
源码
ViewBindingDataBindingMVVM.zip