先上效果:
购物车实现使用的ExpandableListView,关于它的使用的就不在多说,网上的资料都非常多。
xml里面布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context="com.xp.shoppingcart.MainActivity">
<include layout="@layout/include_toolbar" />
<ExpandableListView
android:id="@+id/expandableListView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:scrollbars="none"
android:divider="@null"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/divide_line"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="49dp"
android:background="@android:color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
<com.xp.shoppingcart.SmoothCheckBox
android:id="@+id/cb_select_all"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginLeft="15dp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_weight="0.69"
android:text="全选"
android:textColor="#333333"
android:textSize="15sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="合计"
android:textColor="#333333"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_all_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="¥0"
android:textColor="#FE3824"
android:textSize="15sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_transport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="运费:¥0"
android:textColor="#999999"
android:textSize="11sp" />
</LinearLayout>
<Button
android:id="@+id/btn_settlement"
android:layout_width="95dp"
android:layout_height="match_parent"
android:layout_marginLeft="15dp"
android:background="#FE3824"
android:text="结算(0)"
android:textColor="@android:color/white"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
初始化控件:
private void initView() {
mExpandableListView = (ExpandableListView) findViewById(R.id.expandableListView);
mCbSelectAll = (SmoothCheckBox) findViewById(R.id.cb_select_all);
mTvAllMoney = (TextView) findViewById(R.id.tv_all_money);
mBtnBuy = (Button) findViewById(R.id.btn_settlement);
//去掉ExpandableListView 默认的箭头
mExpandableListView.setGroupIndicator(null);
//用于列表滑动时,EditText清除焦点,收起软键盘
mExpandableListView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView absListView, int scrollState) {
if (SCROLL_STATE_TOUCH_SCROLL == scrollState) {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Activity
.INPUT_METHOD_SERVICE);
View focusView = getCurrentFocus();
if (focusView !=