仿淘宝购物车逻辑

原创 2016年08月28日 22:31:25

仿淘宝购物车全选反选逻辑

首先说明一下淘宝的购物车的逻辑,购物车里面有第一层店铺,第二层就是店铺下的商品,全选商品,那么店铺上的按钮就会被选中

白色的代表为店铺 红色的代表为商品。


然后我的想法recycleview嵌套recycleview,当然网上也有用ExpandableListView实现的 http://blog.csdn.net/u013278099/article/details/50822074

我的思想就是判断最下层 既就是商品(红色的Item) 来确定是否让店铺全选(灰色的Item),然后再判断店铺的选中状态,再判断最外层也就是最外面的全选功能。

然后我们list<List<Bean>>来记录他们的选中状态

店铺(灰色Item)的bean类

public class Bean {
    private Boolean isClick;
    private List<ChildBean> mChildBeen;

    public List<ChildBean> getChildBeen() {
        return mChildBeen;
    }

    public void setChildBeen(List<ChildBean> childBeen) {
        mChildBeen = childBeen;
    }

    public Boolean getClick() {
        return isClick;
    }

    public void setClick(Boolean click) {
        isClick = click;
    }
}

商品(红色Item)的bean类

    public class ChildBean {
    private Boolean isclick;

    public Boolean getIsclick() {
        return isclick;
    }

    public void setIsclick(Boolean isclick) {
        this.isclick = isclick;
    }
}

然后就是逻辑,红色Item 下层recycleview的Adapter的逻辑

        holder.second.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mBean.getChildBeen().get(position).setIsclick(!mBean.getChildBeen().get(position).getIsclick());
            notifyDataSetChanged();
            for (int i = 0; i < mBean.getChildBeen().size(); i++) {
                if(!mBean.getChildBeen().get(i).getIsclick()){
                    isallclick = false;
                    break;
                }else {
                    isallclick = true;
                }
            }
            if(isallclick){
                Toast.makeText(mContext,"全选了",Toast.LENGTH_LONG).show();
                mBean.setClick(true);
                mFirstAdapter.notifyDataSetChanged();
            }else {
                mBean.setClick(false);
                mFirstAdapter.notifyDataSetChanged();
            }
        }
    });

解析一下 isallclick是一个判断是否全选的标记 先判断一下红色的Item都有没有被选中如果没有则退出循环 isallclick为false,如果有则为true,然后刷新数据更新视图。

灰色Item 上层recycleview的Adapter的逻辑

//    判断有没有进行全选了 最外面的有没有全选
private void Isallclick(){
    for (Bean bean: firstclick) {
        if(bean.getClick()){
            isallclick = true;
        }else {
            isallclick = false;
            break;
        }
    }
    if(isallclick){
        mclick.setImageResource(R.drawable.check);
    }else {
        mclick.setImageResource(R.drawable.nocheck);
    }
}

跟上面的逻辑差不多一样 但是注意一点就是 如果红色Item全部点光了那么最外层的全选也是显示选中的样式。所以这个方也调用的地方有两处,在灰色Item点击事件里面,在onBindViewHolder里面。

最后就是判断最外层的全选了,只要我知道灰色Item有没有全选就可以了。

最后附上源码 https://github.com/justafreshman/TestAllSelect

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

iOS开发——仿淘宝添加到购物车的动画效果实现

类似于淘宝一样,我们在写一些购物、订餐之类的app的时候,在用户选择购买或者加入购物车时可以添加一个商品飞到购物车中的动画效果,如下图所示: 实现这个效果还是不算难的,但涉及的问题比较多,还是挺有学习...

利用jquery.fly实现仿淘宝购物车飞入特效

学习在于积累,今天利用jquery.fly实现仿淘宝购物车飞入特效,虽然实现起来简单,但实际使用时有一堆坑需要注意。结合实际项目经验,我简单的总结了一下到底有哪些坑需要去填。参考网址:github:h...

Android 购物车 高仿淘宝

先上图 接下来我就上代码啦 main布局
  • wyj1369
  • wyj1369
  • 2017年10月25日 17:58
  • 382

Android仿淘宝购物车demo

夏的热情渐渐退去,秋如期而至,丰收的季节,小编继续着实习之路,走着走着,就走到了购物车,逛过淘宝或者是京东的小伙伴都知道购物车里面的宝贝可不止一件,对于爱购物的姑娘来说,购物车里面的商品恐怕是爆满,添...

仿淘宝购物车demo---增加和减少商品数量

在上一篇博客中,小编简单的介绍了如何使用listview来实现购物车,但是仅仅是简单的实现了列表的功能,随之而来一个新的问题,买商品的时候,我们可能不只想买一件商品,想买多个,或许有因为某种原因点错了...

仿淘宝购物车嵌套ListView

最近做到了淘宝的购物车功能,对于中间的店铺商品的显示也废了翻脑筋,原本打算用ExpandableListView来做,发现又特别的麻烦,干脆就直接写个嵌套的ListView,废话不多说,直接上代码 ...

Android开发之浅谈仿淘宝购物车实现(一)

本文来自网络,模仿淘宝购物车界面实现,请看文章!

Android仿淘宝购物车

最近项目需要实现类似淘宝购物车的功能,仿了一个,直接上代码:public class MainActivity extends Activity implements OnCartListener, ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:仿淘宝购物车逻辑
举报原因:
原因补充:

(最多只允许输入30个字)