For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
下面昆明达内计算机培训学校小编和大家分享Android新写法MultiType,学过it的小伙伴们会知道一点可能知道Android复杂的多类型清晰、灵活、模块开发列表视图新写法,、插件化思想.
这几天达内it培训小编晚上回家开始设计的TimeMachine的消息池系统,并抽取出来开源成一个全新的类库:MultiType!从前,我们写一个复杂的、多item view types的列表视图,经常要做一堆繁琐的工作,而且不小心的话代码还堆积严重:it培训小编需要覆写RecyclerView.Adapter的getItemViewType方法,并新增一些type整形常量,而且ViewHolder继承、泛型传递、转型也比较糟糕,毕竟Adapter只能接受一个泛型……十分麻烦导致过于复杂的页面经常会使用ScrollView来实现,一次性加载,而且失去了复用性。
而且,一旦达内培训小编需要新增一些新的item view types,就得去修改Adapter旧的代码,步骤繁多,侵入较强。
现在好了,只要三步,不需要修改旧代码,只要无脑往池子里插入新的type,会自动连接、分发数据和事件,新增再多的item types都能轻松搞定,支持RV、复用,代码模块开发,清晰而灵活。若要说为什么这么灵活?因为它本来就是为IM视图开发的,想想IM的消息类型可能有多少种而且新增频繁。
接入
在你的build.gradle :
dependencies {
compile 'me.drakeet.multitype:multitype:1.1-beta2'
}
复制代码
使用
Step 1.创建一个classimplements ItemContent,它将是你的数据类型或Java bean,示例:
public class TextItemContent implements ItemContent, Savable {
@NonNull public String text;
public TextItemContent(@NonNull String text) {
this.text = text;
}
public TextItemContent(@NonNull byte[] data) {
init(data);
}
@Override public void init(@NonNull byte[] data) {
String json = new String(data);
this.text = new Gson().fromJson(json, TextItemContent.class).text;
}
@NonNull @Override public byte[] toBytes() {
return new Gson().toJson(this).getBytes();
}
}关于Android新写法之MultiType知识,请点击昆明达内官网:http://km.tedu.cn