商城购物车业务逻辑
2017-10-27 20:19
681 查看
业务逻辑分为以下几个部分:
1.首先是所购商品和所购商品所在店的对象的设计,其中关键的是商品和店铺都各自拥有是否在编辑状态与编辑完成这个boolean isEditing进行判断,对于商品的数目还存在一个编辑前的数目和编辑后的数目两个属性
2.商铺的全选与商铺下所有商品的全选
对于全选与单选的逻辑处理是以单选结果为准
1.每次单选一个商品后就对其所在的商铺的其他商品进行遍历,以此结果判断该商铺的所有商品是否都被选中;然后再对每一个商铺是否被选中进行判断,以此判断是否全选;
2.对于商铺的单选,每次拿到商铺得状态之后取反,然后把它赋值给它里面的每一个商品;然后拿着商铺再次进行所有商铺的遍历得出是否全选
3.点击全选,取反,遍历拿到每一个进行设置,返回boolean
3.在编辑状态下商品数目的改变是如何进行的
商品的增加与减少的业务逻辑的核心是对标记setTag()的使用:我们在点击增加按钮时,首先通过标记拿到是哪一个商铺的哪一个商品,然后通过该增加按钮我们(getParent().findById(显示的数目控件))。所以我们就可以拿到该商品的数目进行增加最后赋值就可以了
4.商品结算
1.拿到整个集合,遍历获得每一个商品,进行选中判断
2.选中则拿到数量和价格进行乘法与累加,用String[]数组装着
3.写一个借口传递出去
MyExpandableListAdapter.java
布局文件
activity_shopping_cart.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ShoppingCartActivity">
<include
android:id="@+id/rlTitleBar"
layout="@layout/include_topbar"
/>
<RelativeLayout
android:id="@+id/rlShoppingCartEmpty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_below="@+id/rlTitleBar"
android:background="#FCFCFC"
android:visibility="invisible">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/ic_shopping_cart_empty"/>
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:text="购物车为空"/>
</RelativeLayout>
<ExpandableListView
android:id="@+id/expandableListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/rlBottomBar"
android:layout_below="@+id/rlTitleBar"
android:dividerHeight="0.5dp"
android:listSelector="#00000000"
android:longClickable="true"/>
<RelativeLayout
android:id="@+id/rlBottomBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/white">
<ImageView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_alignParentTop="true"
android:background="#ccc"/>
<ImageView
android:id="@+id/ivSelectAll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:background="@drawable/ic_uncheck"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:layout_toRightOf="@+id/ivSelectAll"
android:text="全选"
android:textColor="#003333"
android:textSize="13sp"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tvCountMoney"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:gravity="right"
android:text="@string/count_money"
android:textColor="#ff2600"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvPostPrice"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:gravity="right"
android:text="不含运费"
android:textColor="#666666"
android:textSize="11sp"/>
</LinearLayout>
<TextView
android:id="@+id/btnSettle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#ff5000"
android:gravity="center_vertical"
android:paddingBottom="5dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="5dp"
android:text="@string/count_goods"
android:textColor="#FFF"
android:textSize="14sp"/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
item_elv_child_test.xml
item_elv_group_test.xml
结果显示
1.首先是所购商品和所购商品所在店的对象的设计,其中关键的是商品和店铺都各自拥有是否在编辑状态与编辑完成这个boolean isEditing进行判断,对于商品的数目还存在一个编辑前的数目和编辑后的数目两个属性
2.商铺的全选与商铺下所有商品的全选
对于全选与单选的逻辑处理是以单选结果为准
1.每次单选一个商品后就对其所在的商铺的其他商品进行遍历,以此结果判断该商铺的所有商品是否都被选中;然后再对每一个商铺是否被选中进行判断,以此判断是否全选;
2.对于商铺的单选,每次拿到商铺得状态之后取反,然后把它赋值给它里面的每一个商品;然后拿着商铺再次进行所有商铺的遍历得出是否全选
3.点击全选,取反,遍历拿到每一个进行设置,返回boolean
3.在编辑状态下商品数目的改变是如何进行的
商品的增加与减少的业务逻辑的核心是对标记setTag()的使用:我们在点击增加按钮时,首先通过标记拿到是哪一个商铺的哪一个商品,然后通过该增加按钮我们(getParent().findById(显示的数目控件))。所以我们就可以拿到该商品的数目进行增加最后赋值就可以了
4.商品结算
1.拿到整个集合,遍历获得每一个商品,进行选中判断
2.选中则拿到数量和价格进行乘法与累加,用String[]数组装着
3.写一个借口传递出去
MyExpandableListAdapter.java
package com.shixu.tbcart.adapter; import android.content.Context; import android.graphics.Paint; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import com.shixu.tbcart.R; import com.shixu.tbcart.entity.ShoppingCartBean; import com.shixu.tbcart.listener.OnShoppingCartChangeListener; import com.shixu.tbcart.listener.ShoppingCartBiz; import com.shixu.tbcart.utils.ToastHelper; import com.shixu.tbcart.view.UIAlertView; import java.util.ArrayList; import java.util.List; public class MyExpandableListAdapter extends BaseExpandableListAdapter { private Context mContext; private List<ShoppingCartBean> mListGoods = new ArrayList<ShoppingCartBean>(); private OnShoppingCartChangeListener mChangeListener; private boolean isSelectAll = false; public MyExpandableListAdapter(Context context) { mContext = context; } public void setList(List<ShoppingCartBean> mListGoods) { this.mListGoods = mListGoods; setSettleInfo(); } public void setOnShoppingCartChangeListener(OnShoppingCartChangeListener changeListener) { this.mChangeListener = changeListener; } public View.OnClickListener getAdapterListener() { return listener; } public int getGroupCount() { return mListGoods.size(); } public int getChildrenCount(int groupPosition) { return mListGoods.get(groupPosition).getGoods().size(); } public Object getGroup(int groupPosition) { return mListGoods.get(groupPosition); } public Object getChild(int groupPosition, int childPosition) { return mListGoods.get(groupPosition).getGoods().get(childPosition); } public long getGroupId(int groupPosition) { return groupPosition; } public long getChildId(int groupPosition, int childPosition) { return childPosition; } public boolean hasStableIds() { return false; } public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { GroupViewHolder holder = null; if (convertView == null) { holder = new GroupViewHolder(); convertView = LayoutInflater.from(mContext).inflate(R.layout.item_elv_group_test, parent, false); holder.tvGroup = (TextView) convertView.findViewById(R.id.tvShopNameGroup); holder.tvEdit = (TextView) convertView.findViewById(R.id.tvEdit); holder.ivCheckGroup = (ImageView) convertView.findViewById(R.id.ivCheckGroup); convertView.setTag(holder); } else { holder = (GroupViewHolder) convertView.getTag(); } holder.tvGroup.setText(mListGoods.get(groupPosition).getMerchantName()); ShoppingCartBiz.checkItem(mListGoods.get(groupPosition).isGroupSelected(), holder.ivCheckGroup); boolean isEditing = mListGoods.get(groupPosition).isEditing(); if (isEditing) { holder.tvEdit.setText("完成"); } else { holder.tvEdit.setText("编辑"); } holder.ivCheckGroup.setTag(groupPosition); holder.ivCheckGroup.setOnClickListener(listener); holder.tvEdit.setTag(groupPosition); holder.tvEdit.setOnClickListener(listener); holder.tvGroup.setOnClickListener(listener); return convertView; } /** * child view */ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { ChildViewHolder holder = null; if (convertView == null) { holder = new ChildViewHolder(); convertView = LayoutInflater.from(mContext).inflate(R.layout.item_elv_child_test, parent, false); holder.tvChild = (TextView) convertView.findViewById(R.id.tvItemChild); holder.tvDel = (TextView) convertView.findViewById(R.id.tvDel); holder.ivCheckGood = (ImageView) convertView.findViewById(R.id.ivCheckGood); holder.rlEditStatus = (RelativeLayout) convertView.findViewById(R.id.rlEditStatus); holder.llGoodInfo = (LinearLayout) convertView.findViewById(R.id.llGoodInfo); holder.ivAdd = (ImageView) convertView.findViewById(R.id.ivAdd); holder.ivReduce = (ImageView) convertView.findViewById(R.id.ivReduce); holder.tvGoodsParam = (TextView) convertView.findViewById(R.id.tvGoodsParam); holder.tvPriceNew = (TextView) convertView.findViewById(R.id.tvPriceNew); holder.tvPriceOld = (TextView) convertView.findViewById(R.id.tvPriceOld); holder.tvPriceOld.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//数字被划掉效果 holder.tvNum = (TextView) convertView.findViewById(R.id.tvNum); holder.tvNum2 = (TextView) convertView.findViewById(R.id.tvNum2); convertView.setTag(holder); } else { holder = (ChildViewHolder) convertView.getTag(); } ShoppingCartBean.Goods goods = mListGoods.get(groupPosition).getGoods().get(childPosition); boolean isChildSelected = mListGoods.get(groupPosition).getGoods().get(childPosition).isChildSelected(); boolean isEditing = goods.isEditing(); String priceNew = "¥" + goods.getPrice(); String priceOld = "¥" + goods.getMkPrice(); String num = goods.getNumber(); String pdtDesc = goods.getPdtDesc(); String goodName = mListGoods.get(groupPosition).getGoods().get(childPosition).getGoodsName(); holder.ivCheckGood.setTag(groupPosition + "," + childPosition); holder.tvChild.setText(goodName); holder.tvPriceNew.setText(priceNew); holder.tvPriceOld.setText(priceOld); holder.tvNum.setText("X " + num); holder.tvNum2.setText(num); holder.tvGoodsParam.setText(pdtDesc); holder.ivAdd.setTag(goods); holder.ivReduce.setTag(goods); holder.tvDel.setTag(groupPosition + "," + childPosition); holder.tvDel.setTag(groupPosition + "," + childPosition); ShoppingCartBiz.checkItem(isChildSelected, holder.ivCheckGood); if (isEditing) { holder.llGoodInfo.setVisibility(View.GONE); holder.rlEditStatus.setVisibility(View.VISIBLE); } else { holder.llGoodInfo.setVisibility(View.VISIBLE); holder.rlEditStatus.setVisibility(View.GONE); } holder.ivCheckGood.setOnClickListener(listener); holder.tvDel.setOnClickListener(listener); holder.ivAdd.setOnClickListener(listener); holder.ivReduce.setOnClickListener(listener); holder.llGoodInfo.setOnClickListener(listener); return convertView; } public boolean isChildSelectable(int i, int i1) { return false; } View.OnClickListener listener = new View.OnClickListener() { public void onClick(View v) { switch (v.getId()) { //main case R.id.ivSelectAll: isSelectAll = ShoppingCartBiz.selectAll(mListGoods, isSelectAll, (ImageView) v); setSettleInfo(); notifyDataSetChanged(); break; case R.id.tvEditAll: break; case R.id.btnSettle: if (ShoppingCartBiz.hasSelectedGoods(mListGoods)) { ToastHelper.getInstance()._toast("结算跳转"); } else { ToastHelper.getInstance()._toast("亲,先选择商品!"); } //group break; case R.id.tvEdit://切换界面,属于特殊处理,假如没打算切换界面,则不需要这块代码 int groupPosition2 = Integer.parseInt(String.valueOf(v.getTag())); boolean isEditing = !(mListGoods.get(groupPosition2).isEditing()); mListGoods.get(groupPosition2).setIsEditing(isEditing); for (int i = 0; i < mListGoods.get(groupPosition2).getGoods().size(); i++) { mListGoods.get(groupPosition2).getGoods().get(i).setIsEditing(isEditing); } notifyDataSetChanged(); break; case R.id.ivCheckGroup: int groupPosition3 = Integer.parseInt(String.valueOf(v.getTag())); isSelectAll = ShoppingCartBiz.selectGroup(mListGoods, groupPosition3); selectAll(); setSettleInfo(); notifyDataSetChanged(); break; //child case R.id.ivCheckGood: String tag = String.valueOf(v.getTag()); if (tag.contains(",")) { String s[] = tag.split(","); int groupPosition = Integer.parseInt(s[0]); int childPosition = Integer.parseInt(s[1]); isSelectAll = ShoppingCartBiz.selectOne(mListGoods, groupPosition, childPosition); selectAll(); setSettleInfo(); notifyDataSetChanged(); } break; case R.id.tvDel: String tagPos = String.valueOf(v.getTag()); if (tagPos.contains(",")) { String s[] = tagPos.split(","); int groupPosition = Integer.parseInt(s[0]); int childPosition = Integer.parseInt(s[1]); showDelDialog(groupPosition, childPosition); } break; case R.id.ivAdd: ShoppingCartBiz.addOrReduceGoodsNum(true, (ShoppingCartBean.Goods) v.getTag(), ((TextView) (((View) (v.getParent())).findViewById(R.id.tvNum2)))); setSettleInfo(); break; case R.id.ivReduce: ShoppingCartBiz.addOrReduceGoodsNum(false, (ShoppingCartBean.Goods) v.getTag(), ((TextView) (((View) (v.getParent())).findViewById(R.id.tvNum2)))); setSettleInfo(); break; case R.id.llGoodInfo: ToastHelper.getInstance()._toast("商品详情,暂未实现"); break; case R.id.tvShopNameGroup: ToastHelper.getInstance()._toast("商铺详情,暂未实现"); break; } } }; private void selectAll() { if (mChangeListener != null) { mChangeListener.onSelectItem(isSelectAll); } } private void setSettleInfo() { String[] infos = ShoppingCartBiz.getShoppingCount(mListGoods); //删除或者选择商品之后,需要通知结算按钮,更新自己的数据; if (mChangeListener != null && infos != null) { mChangeListener.onDataChange(infos[0], infos[1]); } } private void showDelDialog(final int groupPosition, final int childPosition) { final UIAlertView delDialog = new UIAlertView(mContext, "温馨提示", "确认删除该商品吗?", "取消", "确定"); delDialog.show(); delDialog.setClicklistener(new UIAlertView.ClickListenerInterface() { public void doLeft() { delDialog.dismiss(); } public void doRight() { String productID = mListGoods.get(groupPosition).getGoods().get(childPosition).getProductID(); ShoppingCartBiz.delGood(productID); delGoods(groupPosition, childPosition); setSettleInfo(); notifyDataSetChanged(); delDialog.dismiss(); } } ); } private void delGoods(int groupPosition, int childPosition) { mListGoods.get(groupPosition).getGoods().remove(childPosition); if (mListGoods.get(groupPosition).getGoods().size() == 0) { mListGoods.remove(groupPosition); } notifyDataSetChanged(); } class GroupViewHolder { TextView tvGroup; TextView tvEdit; ImageView ivCheckGroup; } class ChildViewHolder { /** 商品名称 */ TextView tvChild; /** 商品规格 */ TextView tvGoodsParam; /** 选中 */ ImageView ivCheckGood; /** 非编辑状态 */ LinearLayout llGoodInfo; /** 编辑状态 */ RelativeLayout rlEditStatus; /** +1 */ ImageView ivAdd; /** -1 */ ImageView ivReduce; /** 删除 */ TextView tvDel; /** 新价格 */ TextView tvPriceNew; /** 旧价格 */ TextView tvPriceOld; /** 商品状态的数量 */ TextView tvNum; /** 编辑状态的数量 */ TextView tvNum2; } }
布局文件
activity_shopping_cart.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ShoppingCartActivity">
<include
android:id="@+id/rlTitleBar"
layout="@layout/include_topbar"
/>
<RelativeLayout
android:id="@+id/rlShoppingCartEmpty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_below="@+id/rlTitleBar"
android:background="#FCFCFC"
android:visibility="invisible">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/ic_shopping_cart_empty"/>
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:text="购物车为空"/>
</RelativeLayout>
<ExpandableListView
android:id="@+id/expandableListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/rlBottomBar"
android:layout_below="@+id/rlTitleBar"
android:dividerHeight="0.5dp"
android:listSelector="#00000000"
android:longClickable="true"/>
<RelativeLayout
android:id="@+id/rlBottomBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/white">
<ImageView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_alignParentTop="true"
android:background="#ccc"/>
<ImageView
android:id="@+id/ivSelectAll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:background="@drawable/ic_uncheck"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:layout_toRightOf="@+id/ivSelectAll"
android:text="全选"
android:textColor="#003333"
android:textSize="13sp"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tvCountMoney"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:gravity="right"
android:text="@string/count_money"
android:textColor="#ff2600"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvPostPrice"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:gravity="right"
android:text="不含运费"
android:textColor="#666666"
android:textSize="11sp"/>
</LinearLayout>
<TextView
android:id="@+id/btnSettle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#ff5000"
android:gravity="center_vertical"
android:paddingBottom="5dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="5dp"
android:text="@string/count_goods"
android:textColor="#FFF"
android:textSize="14sp"/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
item_elv_child_test.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#EEEEEE"> <ImageView android:id="@+id/ivCheckGood" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:background="@drawable/ic_uncheck"/> <ImageView android:id="@+id/ivGoods" android:layout_width="100dp" android:layout_height="100dp" android:layout_centerVertical="true" android:layout_marginBottom="5dp" android:layout_marginLeft="10dp" android:layout_marginTop="5dp" android:layout_toRightOf="@+id/ivCheckGood" android:background="@drawable/test_goods"/> <LinearLayout android:id="@+id/llGoodInfo" android:layout_width="wrap_content" android:layout_height="80dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_toRightOf="@+id/ivGoods" android:gravity="center_vertical" android:orientation="vertical" android:visibility="visible" android:weightSum="3"> <TextView android:id="@+id/tvItemChild" android:layout_width="match_parent" android:layout_height="0dp" android:layout_gravity="top" android:layout_marginTop="2dp" android:layout_weight="1" android:text="商品名称" android:textColor="#003333" android:textSize="12sp"/> <TextView android:id="@+id/tvGoodsParam" android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginTop="2dp" android:layout_weight="1" android:gravity="top" android:text="商品规格" android:textColor="#7f7f7f" android:textSize="12sp"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <TextView android:id="@+id/tvPriceNew" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:gravity="bottom" android:text="当前价格" android:textColor="#ff3a00" android:textSize="12sp"/> <TextView android:id="@+id/tvNum" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignTop="@+id/tvPriceNew" android:gravity="bottom" android:text="X 1" android:textColor="#333333" android:textSize="12sp"/> <TextView android:id="@+id/tvPriceOld" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginLeft="5dp" android:layout_toRightOf="@+id/tvPriceNew" android:gravity="bottom" android:text="原先价格" android:textColor="#8e8e8e" android:textSize="12sp"/> </RelativeLayout> </LinearLayout> <RelativeLayout android:id="@+id/rlEditStatus" android:layout_width="wrap_content" android:layout_height="90dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/ivGoods" android:orientation="horizontal" android:visibility="gone" > <LinearLayout android:id="@+id/llGoodLeft" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_toLeftOf="@+id/tvDel" > <ImageView android:id="@+id/ivAdd" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/ic_add"/> <TextView android:id="@+id/tvNum2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal|center_vertical" android:text="1"/> <ImageView android:id="@+id/ivReduce" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:src="@drawable/ic_reduce"/> </LinearLayout> <TextView android:id="@+id/tvDel" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:background="#ff5000" android:gravity="center_vertical" android:paddingLeft="7.5dp" android:paddingRight="7.5dp" android:text="删除" android:textColor="#FFF" android:textSize="14sp"/> </RelativeLayout> </RelativeLayout>
item_elv_group_test.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white"> <ImageView android:id="@+id/ivCheckGroup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:background="@drawable/ic_uncheck"/> <ImageView android:id="@+id/imageView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/ivCheckGroup" android:background="@drawable/ic_shop"/> <TextView android:id="@+id/tvShopNameGroup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/imageView2" android:text="商家名称" android:textColor="#003333" android:textSize="12sp"/> <ImageView android:id="@+id/ivShopArrow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/tvShopNameGroup" android:background="@drawable/ic_arrow"/> <View android:id="@+id/imageView4" android:layout_width="1dp" android:layout_height="10dp" android:layout_centerVertical="true" android:layout_toLeftOf="@+id/tvEdit" android:background="#cccccc"/> <TextView android:id="@+id/tvEdit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:text="@string/edit" android:textColor="#003333" android:textSize="12sp"/> </RelativeLayout>
结果显示
相关文章推荐
- 商城购物车业务逻辑
- 商城购物车逻辑思路
- !金尚网上商城 03~07、WEB项目开发的一般流程—分析与设计之业务逻辑分析设计
- SSM框架写的购物车的功能和业务逻辑
- 商城购物车逻辑思路
- !金尚网上商城10~11-业务逻辑分析+逻辑(编码)设计
- 购物车业务逻辑
- 4.Struts采用EL保持表单数据:业务逻辑层
- 细说业务逻辑(前篇)
- petshop4.0 详解之五(PetShop之业务逻辑层设计)
- 减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同
- RxJava系列番外篇:一个RxJava解决复杂业务逻辑的案例
- 如何规划面向业务逻辑的MOSS系统
- SSH网上商城项目实战 过滤器实现购物车购物登陆功能的判断。
- 业务逻辑
- 移动跨平台开发中使用Lua实现业务逻辑多平台重用
- 疑难业务逻辑SQL中巧解。
- 易生活(七)-APP--搜索业务逻辑处理
- spring 事件:实现业务逻辑解耦
- 在AS上写业务逻辑方法,MXML上调用