Databinding介绍
Databinding是Google发布的一个框架,是实现MVVM的一种方式,目的是降低ui视图和业务逻辑之间的耦合性,使代码逻辑更加清晰。Databinding能帮我们省去重复的findViewById() 步骤,数据能够单行和双向绑定到layout中,有助于防止内存泄漏,而且能够自动检测空异常和类型转换异常。
关于Databinding的使用教程,网上有很多文章介绍,但是不管别人介绍的怎么怎么样,都是别人脑子里的知识,大家最好是自己写一些例子,巩固一下知识点。
databinding-samples介绍
其中google给我出一个很好的例子:databinding-samples,大家可以通过这个例子学一下各个知识点如何使用,以及如何整合使用。
这个例子主要介绍一些内容:
1.布局文件中使用 变量和表达式;学习Databinding的基础用法
2.使用可观察对象:Observable Fields, LiveData and Observable classes;当其中一个可观察数据对象绑定到界面的时候, 该数据对象的属性发生更改时,界面会自动更新。
3.Binding Adapters, Binding Methods and Binding Converters
4.无缝接入ViewModels
该例子使用了两个页面实现用户的简介,app主要介绍了Data Binding的不同特点:
1.MainActivity 展示了Data Binding的基础用法
2.Observable field activity:在这个页面,用户可以点击like按钮增加对profile的喜欢次数,而且ui会自动更新变化。但是Activity中可以接收用户的点击事件和修改profile实例的数据,这样会增加Activity的任务,Activity除了处理生命周期的事情,还持有业务逻辑层的任务,使得代码的耦合性比较强,而且不易测试。
另外该页面旋转的时候likes属性值会重置。
这种编码方式是我们以前开发经常写的,但是这种方式存在耦合性强,不易测试等等缺点
3.ViewModel activity:使用ViewModel方式修改旋转屏幕的问题,而且把业务逻辑从Activity移出去了。
另外使用BindingAdapter修改了Activity的责任,使得Activity不在是view,而是仅仅处理生命周期的事情。
后续
后续会分别学习sample的每个类的责任和实现方式。
网友评论