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