大家都小看了DataBinding!
目前大家用dataBinding给人的感觉就是拿着长枪当木棒
优秀的人一直在努力减少重复工作量
DataBinding简介
DataBinding是2015年谷歌I/O大会上介绍了一个框架,DataBinding是一个数据绑定框架,将数据与布局相绑定。
DataBinding常见使用场景
单纯的摆脱findviewbyid
绑定基本数据类型及String、object
绑定事件
通过静态方法转换数据类型
通过运算符操作数据
自定义Binding的类名
绑定相同Model的操作
model变量改变自动更新数据
绑定List/Map等集合数据
Observable自动更新
Databinding与include标签的结合
DataBinding与RecyclerView的结合
具体就不细说了,参考
databinding常用场景感悟
databinding将布局与数据相互结合,如此一来不需要在adapter中去写相关逻辑,而是将item对应view与相应逻辑相互绑定。
这一点很重要,由这个感悟可以得出以下一点。
databinding与视图模板
在一个常规项目中,使用列表视图的界面至少有三个,而这三个视图,
新手:
需要写三个recyclerView,三个adapter,三个itemLayout,在相应的地方各自编写
熟练:
需要写一个recyclerView,三个adapter,三个itemLayout,在相应的地方new出来
老手:
需要写一个recyclerView,一个adapter,三个itemLayout,三个createViewHolder和bindViewHolder
小牛:
只需要调用一个recyclerViewManager,并设置layoutBinding。
为什么只需要一个recyclerViewManager?
因为这个manager将recyclerView和adapter都封装好了,只提供一个设置LayoutBinder的方法供调用者使用。因为layoutBinder已经包含了item视图的相关逻辑,除了这里是不同的意外,其他的地方,一摸一样,既然一摸一样,那就可以抽取出模板复用。
也就是说他早已经创造了一个模板,而三个界面,都只需要调用这个模板,再给他套一个画皮就可以了。
如此大大减少了工作量。
coder的实力评估
代码可读性、可维护扩展性、代码的复用、造轮子的能力。
很遗憾,很多人写出来的代码,在以上四个方面都不咋样。
哈哈哈哈哈,me too.
欢迎关注我的微信公众号:云端看大地
云端看大地