1.MultiType简单介绍
MultiType用于比较复杂的页面。
比如一个页面中有纯文本的、代转发原文的,带图片的、带视频的、带文章的等等,甚至穿插一条可以横向滑动的好友推荐条目。不同的item类型众多,而且随着业务发展,还会更多。如果我们使用传统的开发方式,经常要做一些繁琐的工作,代码可能都堆积在一个Adapter中,我们需要复写 RecyclerView.Adapter的getItemViewType方法,罗列一些type整型常量,并且ViewHolder转型、绑定数据也比较麻烦。 一旦产品需求有变,或者产品设计需要增加一种新的item类型,我们需要去代码堆里找到我们原来的逻辑去修改,或者找到正确的位置去增加代码。非常繁琐。
现在有了MultiType,简单来说,MultiType就是一个多类型列表视图的中间分发框架,它能帮助你快速并且清晰地开发一些复杂的列表页面。它本是为聊天页面开发的,聊天页面的消息类型也是有大量不同种类,并且新增频繁,而MultiType能够轻松胜任,代码模块化,随时可扩展新的类型进入列表当中。它内建了类型-View的复用池系统,支持RecyclerView,使用简单灵活,令代码清晰,适应需求变化。
2.基本使用方法
1.引入MultiType
在build.gradle中加入
添加依赖MultiType这个框架使用RecycleView,但是不需要写adapter,需要写ItemViewBinder,这是框架里面定义的一个类。在多Type的情况下,每一种item对应一个数据模型(一个bean类)+一个ItemViewBinder.
2.新建一个数据模型bean
实体类3.新建一个类继承ItemViewBinder的一个绑定类
绑定类在这个方法中实现onCreateViewHolder()onBindViewHolder()以及ViewHolder类
4.注册绑定
在Activity中将类和ItemViewBinder注册绑定。其余的工作就和普通的RecycleView一样。因为MultiType使用了自己的adapter,类名为MultiTypeAdapter,在里面填充的数据列表应该是List<Object>,这里就是根据自己的需求来设置这个Object类(就是自己定义Bean类)
网友评论