Android:MVVM+DataBinding 简单实例

DataBinding的Demo

DataBinding+MVVM框架Demo


什么是Data Binding

Data Binding。顾名思义,数据绑定。是Google对MVVM在Android上的一种实现。能够直接绑定数据到xml中。并实现自己主动刷新。

如今最新的版本号还支持双向绑定。虽然使用场景不是那么多。

Data Binding能够提升开发效率(节省非常多以往须要手写的java代码)。性能高(甚至超越手写代码)。功能强(强大的表达式支持)。

用途

去掉Activities & Fragments内的大部分UI代码(setOnClickListener, setText, findViewById, etc.)

XML变成UI的唯一真实来源

降低定义view id的主要用途(数据绑定直接发生在xml)

优势

UI代码放到了xml中,布局和数据更紧密

性能超过手写代码

保证运行在主线程

劣势

IDE支持还不那么完好(提示、表达式)

报错信息不那么直接

重构支持不好(xml中进行重构。java代码不会自己主动改动)

开源方案

ButterKnife, Jake大神的知名库了。能够少些非常多findViewById,setOnClickListener。取而代之地用annotation去生成代码。

Android Annotations,相同通过annotation。大量的annotation。侵入性较强,须要遵循其规范写一些代码。像是@AfterViews凝视中才干对View进行操作。

RoboBinding,和Data Binding最相似的一个方案,相同非常多事情放在xml去做了,使用了aspectJ去做生成。

除了这些比較有名的,还有非常多各不相同的方案,但自从data binding公布后。能够说它们都再也没实用武之地了。由于不管从性能、功能,还是ide的支持上,data binding都更好。

你可能感兴趣的:(Android:MVVM+DataBinding 简单实例)