没错 就是购物车

放图镇楼

某宝

大体效果应该就是这样

购物车涉及到的功能

全选 ,反选,总金额,数量加减,结算金额等 差不多了

实现方式

RecyclerView嵌套RecyclerView

ExpandableListView   可折叠列表

使用ExpandableListView实现购物车

无需依赖   原生控件

ExpandableListView 简介

是一种用于垂直滚动展示两级列表的视图,组可以单独展开

布局代码

就4这么简单

初始化控件

ButterKnife方式初始化

请求数据

Retrofit+OkHttp+RxJava  请求

MVP回调       省略…………

成功拿到数据后 创建ExpandableListView 的适配器

忽略我的类名

适配器中方法介绍

需重写10个抽象方法    不要怕都很简单

获取外/内层视图 需优化

使用ViewHolder 减少findViewById次数

复用 convertView 减少视图创建

外层优化

内层也一样

展示数据

设置好适配器  数据就可以展示了

成功回调

放张当前效果图

忽略我这粗糙的布局

下面开始实现功能全选

逻辑是这样 通过适配器传递的List集合   来设置外层和内层的CheckBox状态

需要在外/内层列表的集合添加 isChecked 布尔值属性 添加get set方法 方便调用

明白上边这些白话后  代码来了

先给外/内层 CheckBox设置上默认状态

用于获取适配器集合

全选/反选

组选

计算总金额及个数

在全选按钮监听中 调用该方法 传递相应集合

就可以了

当前效果图

组选 计算金额

使用到了EventBus

单选

当前效果图

暂时就到这了  明天抽时间写下加减器的逻辑

晚安。

-----听君一席话,白读两年书

-----2020-0309-22:47   我爱生活 生活爱我   阿门。

加减器

首先自定义View   (组合式View)

需要接口回调 数量

当用户点击 -   监听

当用户点击 +  监听

当前效果图

实时计算金额展示

当数量改变  及时计算金额 并展示

自定义View   实例化后 通过viewHolder调用接口 回调传递的数据

这就可以了

再放效果图

到这  一个简陋的购物车就实现了

当用户点击去付款后  就会带着当前选中的数据  去支付

-----完

2020-03-10-22:12