学习视频来源:
- https://www.bilibili.com/video/BV1sJ41127EMlongway777
- 模型图来源也全截取来自该Up的视频
目的
- 直接目的
- 结构上Controller与View更加独立
一.基础步骤
- 建立和之前一样的mod
- 修改项目内gradle文件,启用databinding
- java还有个viewbinding,不过用kotlin就不太需要。
dataBinding {
enabled true
}
- 将对应layout文件点击小灯泡转换为databinding layout
转换DataBinding后多了两个标签
- 来到主界面发现多了一个类型
ActivityMainBinding
就是我们转换的layout相关类型,并以这种方式取代指定layout - 通过新的方式指定layout和调用上面控件,不用findbyid,kotlin本身就可以不用指定所以调用可以不用binding.button,直接用控件名即可
前后端分离,将数据回绑到xml
1.配置XMl标签
- 使用variable,利用名称与变量类型,创建键值对类型指代后端界面的ViewModel
<data>
<variable
name="data"
type="com.ywjh.databinding.ViewModelDataBinding"/>
</data>
二. 修改前端内容
- 将原text内容,通过data取出number再设置使用,data是从刚刚绑定viewmodel中取出的东西,
String.valueOf(data.number)
也可以。数据回绑
- 修改button,直接设置点击指定方法,就不用在界面上调用了,牛逼
- 修改主界面源代码
1)监听可以去掉,用binding取代我们的观察者监听,反绑的好处。
2)用binding.setLifecycleOwner
即可发挥livedata的作用
补充
如果想重置,写个方法全置0 ,想撤销就每次更改时记录更改前的值,若是想设计横向页面,选择Create Landscope Variation即可