又开始学习kotlin了,Adapter的库在github也是一找一大堆,这次Dsl就用它来学习吧,DataBinding(支持多布局)
使用
|
|
主要方法介绍addItemDsl()方法代表添加一个布局可以指定类型,传入一个MagicItem类,resId代码布局id,dataMatch是之在多布局的时候,当前item的数据和你加入的布局类型是否符合,因为是DataBinding版本,所以在布局上默认有个BR.item的,如下
itemId方法就是可以给布局加入其它类型的比如我加入了User类型,handler方法也是传人id和函数,因为有时候你会onClick,onLongClick自己可以加入。areItems和areContents代表的意思是加入了DiffUtil.Callback() 里面的两个areItemsTheSame和areContentsTheSame方法。
原理
MagicAdapter里面
|
|
item就是记录所以的布局总和,如何通过position来找到对应的布局核心代码就是如下
|
|
onBindViewHolder默认
|
|
其实代码量很少。
支持Dsl
MagicDslItem类来支持
不足之处
目前只支持databinding版本后期可以支持普通版本,DataBindingDslAdapter