-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Closed
Description
更便捷的多布局, 为 BaseQuickAdapter 设置代理
public class MultiDelegateAdapter extends BaseQuickAdapter<Entity, BaseViewHolder> {
public MultiDelegateAdapter() {
super(null);
//Step.1
setMultiTypeDelegate(new MultiTypeDelegate<Entity>() {
@Override
protected int getItemType(Entity entity) {
//根据你的实体类来判断布局类型
return entity.type;
}
});
//Step.2
getMultiTypeDelegate()
.registerItemType(Entity.TEXT, R.layout.item_text_view)
.registerItemType(Entity.IMG, R.layout.item_image_view);
}
@Override
protected void convert(BaseViewHolder helper, Entity entity) {
//Step.3
switch (helper.getItemViewType()) {
case Entity.TEXT:
// do something
break;
case Entity.IMG:
// do something
break;
}
}
}多布局代理很简单,在任何继承与BaseQuickAdapter的 adapter 上都可以实现,分为三步,如下:
Step.1
setMultiTypeDelegate(), 并重写getItemType()方法
需要说明的是Entity 并不需要实现任何接口 ,只需要能够判断出该实体对应的是哪个布局类型即可
Step.2
getMultiTypeDelegate().registerItemType()设置每种type对应的布局
Step.3
- 分 type 进行
convert()操作
OK, 多布局就可以顺利的运行了
hysdeveloper, fmzq, akindone, AlphaCatMeow, liushengyi and 71 moreWanDa1993, xiaochao-develop, sunnyhack, acomet, walorwang and 1 morejewelbao, JJS-CN, WanDa1993, walorwang, Saxxhw and 1 moreliushengyi, grapefruit330, SuperKe, gaofangliang, xiaochao-develop and 4 more
Metadata
Metadata
Assignees
Labels
No labels
