沒錯?就是購物車
放圖鎮(zhèn)樓
大體效果應(yīng)該就是這樣
購物車涉及到的功能
全選 ,反選,總金額宴倍,數(shù)量加減,結(jié)算金額等 差不多了
實現(xiàn)方式?
RecyclerView嵌套RecyclerView
ExpandableListView? ?可折疊列表
使用ExpandableListView實現(xiàn)購物車
無需依賴? ?原生控件
ExpandableListView?簡介
是一種用于垂直滾動展示兩級列表的視圖,組可以單獨展開
布局代碼
初始化控件
請求數(shù)據(jù)
Retrofit+OkHttp+RxJava? 請求
MVP回調(diào)? ? ? ?省略…………
成功拿到數(shù)據(jù)后?創(chuàng)建ExpandableListView?的適配器
適配器中方法介紹
需重寫10個抽象方法? ? 不要怕都很簡單
獲取外/內(nèi)層視圖?需優(yōu)化
使用ViewHolder?減少findViewById次數(shù)
復(fù)用 convertView?減少視圖創(chuàng)建
內(nèi)層也一樣
展示數(shù)據(jù)
設(shè)置好適配器? 數(shù)據(jù)就可以展示了
放張當(dāng)前效果圖
下面開始實現(xiàn)功能全選
邏輯是這樣?通過適配器傳遞的List集合? ?來設(shè)置外層和內(nèi)層的CheckBox狀態(tài)
需要在外/內(nèi)層列表的集合添加 isChecked?布爾值屬性?添加get set方法?方便調(diào)用
明白上邊這些白話后? 代碼來了
先給外/內(nèi)層 CheckBox設(shè)置上默認(rèn)狀態(tài)?
全選/反選
組選
計算總金額及個數(shù)
在全選按鈕監(jiān)聽中?調(diào)用該方法?傳遞相應(yīng)集合
當(dāng)前效果圖
組選?計算金額
使用到了EventBus
單選
當(dāng)前效果圖
暫時就到這了? 明天抽時間寫下加減器的邏輯??
晚安仓技。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -----聽君一席話鸵贬,白讀兩年書
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????? -----2020-0309-22:47? ?我愛生活?生活愛我? ?阿門。
加減器
首先自定義View? ?(組合式View)??
需要接口回調(diào)?數(shù)量
當(dāng)前效果圖
實時計算金額展示
當(dāng)數(shù)量改變? 及時計算金額?并展示
自定義View? ?實例化后?通過viewHolder調(diào)用接口?回調(diào)傳遞的數(shù)據(jù)
這就可以了
再放效果圖
到這? 一個簡陋的購物車就實現(xiàn)了
當(dāng)用戶點擊去付款后? 就會帶著當(dāng)前選中的數(shù)據(jù)? 去支付
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -----完
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2020-03-10-22:12