美文网首页程序员
MultiTypeAdapter(仿淘宝购物车)

MultiTypeAdapter(仿淘宝购物车)

作者: 小耗子_20da | 来源:发表于2019-12-20 11:51 被阅读0次

RecyclerView与DataBinding封装

以购物车为例

1、创建一个类,并继承MultiTypeAdapter

当然也可以创建自己的ViewHolder

/**
 * 多类型viewType
 * 1、每种类型必须有对应的javabean,且必须实现RecyclerData接口,返回值可以不连续,但是必须不同;
 * 2、getLayoutRes(int viewType)必须返回对应的layout id;
 * 3、onBindViewHolder()方法中也必须将viewdatabinding这强转成对应的子类,数据也需要强转
 * 4、如果没有重写onCreateViewHolder()方法,则创建ViewHolder;
 * 5、注释部分是使用自定义的ViewHolder
 */
public class ShoppingTrolleyAdapter extends MultiTypeAdapter {

    /**
     * 绑定数据到View中
     * <p>
     * 可以使用getItemViewType(position)获取对应的viewType
     *
     * @param position
     * @param viewHolder
     */
    @Override
    protected void onBindViewHolder(int position, ViewHolder viewHolder) {
        switch (getItemViewType(position)) {
            case 0:
                ((ItemTopBinding) viewHolder.getBinding()).setGoodsTop((GoodsTopInfo) getDataList().get(position));
                break;
            case 1:
                ((ItemCentreBinding) viewHolder.getBinding()).setGoodsCenter((GoodsCentreInfo) getDataList().get(position));
                break;
            case 2:
                ((ItemBottomBinding) viewHolder.getBinding()).setGoodsBottom((GoodsBottomInfo) getDataList().get(position));
                break;
        }
    }

    /**
     * 获取每种viewType对应的layout文件
     *
     * @param viewType 即RecyclerData中get_RV_ItemViewType()的返回值
     * @return
     */
    @Override
    protected int getLayoutRes(int viewType) {
        switch (viewType) {
            case 0:
                return R.layout.item_top;
            case 1:
                return R.layout.item_centre;
            case 2:
                return R.layout.item_bottom;
        }
        return -1;
    }
}

2、实例化对象并设置点击事件

mShoppingTrolleyAdapter = new ShoppingTrolleyAdapter();

3、为RecyclerView设置Adapter

mRecyclerView.setAdapter(mShoppingTrolleyAdapter);

4、刷新或写入数据

注意:必须在mRecyclerView.setAdapter(mFriendAdapter);才能写入数据

mShoppingTrolleyAdapter.refresh(data);

相关文章

  • MultiTypeAdapter(仿淘宝购物车)

    RecyclerView与DataBinding封装 1、创建一个类,并继承MultiTypeAdapter 当然...

  • Android仿淘宝购物车

    【参考借鉴】Android仿淘宝购物车,玩转电商购物车 首先看一下效果 购物车主要由ExpandableListV...

  • 仿淘宝购物车

    双11刚过,感觉淘宝购物车,你挺强大呀。虽然在淘宝上买不起,但是我可以自己做一个购物车自己买过把瘾。就想着自己也来...

  • iOS仿淘宝购物车

    很多做电商的朋友,总会被购物车所烦恼,因为不知道怎么去选择商品,或者是带商店的商品。这里我就简单的介绍下我的思路 ...

  • vlayout

    recycleView技术大全http://blog.csdn.net/zxt0601高仿淘宝购物车分分钟让你集成...

  • [vue]仿淘宝app购物车实现

    根据需求要类似淘宝app的购物车实现。网上的例子一般都是一个产品列表就完成,但淘宝这些需要有一个对店铺的分类,所以...

  • 仿写天猫淘宝购物车

    最近业务上需要完成一个购物车,其页面的UI和天猫、淘宝类似。 GitHub传送门 包含以下内容: 已选购商品; 推...

  • 仿淘宝购物车多标签组件

    先上效果图: 我的github:源码

  • Android仿淘宝购物车,玩转电商购物车

    前言 其实做一个电商购物车,还真不是一个轻松的活。但是只要掌握思路,一步一步来做,就会发现也就这样。废物不多说,直...

  • 每日优鲜 — 购物车功能分析

    对比淘宝APP和每日优鲜APP的购物车功能,分析异同 购物车内的分析 加入购物车分析: 分析淘宝与每日优鲜这么设计...

网友评论

    本文标题:MultiTypeAdapter(仿淘宝购物车)

    本文链接:https://www.haomeiwen.com/subject/cfibnctx.html