MainActvity 的布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.bwie.shoppcardemo.view.activity.MainActivity"> <include layout="@layout/layout_title" /> <ExpandableListView android:id="@+id/expandList" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="match_parent"> </ExpandableListView> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:layout_marginTop="2dp" android:background="#000000"/> <include layout="@layout/layout_bottom" /> </LinearLayout> 然后 这里面有一个头和脚 下面是头
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/holo_red_light" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="返回" android:textSize="25sp" android:padding="10dp" android:textColor="@android:color/white" android:id="@+id/btnBack"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="25sp" android:padding="10dp" android:textColor="@android:color/white" android:layout_weight="1" android:gravity="center" android:text="购物车"/> <TextView android:id="@+id/btnEditor" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="编辑" android:textColor="@android:color/white" android:textSize="25sp" android:padding="10dp"/> </LinearLayout>然后下面是脚
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="全选" android:textSize="25sp" android:padding="10dp" android:id="@+id/btnCheckAll"/> <TextView android:id="@+id/tvTotalPrice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:padding="10dp" android:textColor="@android:color/black" android:layout_weight="1" android:gravity="center" android:text="合计:¥0.00"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="结算(0)" android:textColor="@android:color/white" android:textSize="25sp" android:padding="10dp" android:background="@android:color/holo_red_light" android:id="@+id/btnAmount"/> </LinearLayout> 然后就是 耳机列表的 父 和 子 的布局 这是父 布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <CheckBox android:id="@+id/ck_group_choosed" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="商家1" android:gravity="center_vertical" android:textSize="25sp" android:focusable="false" android:padding="10dp"/> </LinearLayout>然后是 子布局
<?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="wrap_content"> <CheckBox android:id="@+id/ck_child_choose" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="5dp" android:scaleX="0.6" android:scaleY="0.6" /> <ImageView android:id="@+id/iv_show_pic" android:layout_width="70dp" android:layout_height="80dp" android:layout_centerVertical="true" android:layout_marginLeft="5dp" android:src="@mipmap/ic_launcher" android:layout_toRightOf="@id/ck_child_choose" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="15dp" android:layout_toRightOf="@id/iv_show_pic" android:orientation="vertical"> <TextView android:id="@+id/tv_commodity_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="酒红色纯红色纯羊毛西服套装" android:textColor="@android:color/black" android:textSize="12sp" android:textStyle="bold" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_commodity_attr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3dp" android:text="属性:粉蓝色" android:textSize="12sp" android:textColor="@color/colorPrimary" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:orientation="horizontal"> <TextView android:id="@+id/tv_commodity_price" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="¥390" android:textColor="@android:color/holo_red_dark" android:textSize="12sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_commodity_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:text="x1" android:textColor="@android:color/darker_gray" /> <LinearLayout android:id="@+id/rl_edit" android:layout_width="120dp" android:background="@android:color/holo_orange_light" android:layout_height="30dp" android:layout_marginLeft="20dp" > <TextView android:id="@+id/iv_sub" android:layout_width="0dp" android:layout_weight="1" android:gravity="center" android:textColor="@android:color/black" android:background="@android:color/white" android:layout_margin="1dp" android:layout_height="match_parent" android:text=" - " /> <TextView android:id="@+id/tv_commodity_show_num" android:layout_width="0dp" android:layout_weight="1" android:gravity="center" android:background="@android:color/white" android:layout_margin="1dp" android:layout_height="match_parent" android:text="1" /> <TextView android:id="@+id/iv_add" android:layout_width="0dp" android:layout_weight="1" android:gravity="center" android:layout_margin="1dp" android:background="@android:color/white" android:layout_height="match_parent" android:text=" + " /> </LinearLayout> </LinearLayout> </LinearLayout> <Button android:id="@+id/btn_commodity_delete" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:gravity="center" android:text="x" android:background="@android:color/holo_blue_light" android:textSize="20sp" android:textColor="@android:color/holo_green_dark" android:layout_margin="5dp" android:visibility="gone" /> </RelativeLayout> 这是 订单的 布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/linear_layout" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/text_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="订单测试标题4582" android:textSize="22sp" android:padding="10dp" android:textStyle="bold" android:layout_gravity="center"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/text_orderid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="订单id:6823" android:textSize="20sp" android:padding="10dp"/> <TextView android:id="@+id/text_price" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="¥:5199" android:textSize="20sp" android:padding="10dp" android:layout_centerHorizontal="true"/> <Button android:id="@+id/btn_submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:text="提交订单" android:layout_margin="5dp"/> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/text_status" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="订单状态:待支付" android:textColor="#303F9F" android:textSize="20sp" android:padding="10dp" android:layout_alignParentRight="true" android:layout_marginRight="20dp"/> <TextView android:id="@+id/text_createtime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="创建时间:2018-01-13T15:13:29" android:layout_below="@id/text_status" android:textSize="18sp" android:padding="10dp" android:layout_alignParentRight="true"/> </RelativeLayout> </LinearLayout> 然后 DingActivity 的布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.gouwu.view.DingActivity" android:orientation="vertical"> <include layout="@layout/dingdantile"/> <android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v7.widget.RecyclerView> </LinearLayout> 这是 订单展示页面的下拉加载package com.example.gwu.view; import android.os.Bundle; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.widget.AbsListView; import com.example.gwu.R; import com.example.gwu.bean.DingBean; import com.example.gwu.view.adapter.MyRvAdapter; import com.google.gson.Gson; import java.io.IOException; import java.util.List; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class DingdanActivity extends AppCompatActivity implements Ds { private List<DingBean.DataBean> lists; private RecyclerView mRv; private MyRvAdapter adapter; private LinearLayoutManager linearLayoutManager; private Handler handler = new Handler(); private int lastItemPostion; private int i=1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dingdan); mRv = (RecyclerView) findViewById(R.id.rv); linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); mRv.setLayoutManager(linearLayoutManager); getU("1",this); //实现RcyclerView的上拉刷新 mRv.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); switch (newState){ case AbsListView.OnScrollListener.SCROLL_STATE_IDLE://静止状态 //加载更多 if(adapter.getItemCount() - 1 == lastItemPostion){ //滑动到了最底部 i++; getU("1",DingdanActivity.this); adapter.notifyDataSetChanged(); } break; } } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); //找到第一个条目 //int firstItemPostision = linearLayoutManager.findFirstVisibleItemPosition(); lastItemPostion = linearLayoutManager.findLastVisibleItemPosition(); //System.out.println("firstItemPostion : "+firstItemPostision+"\t lastItemPosition : "+lastItemPostion); } }); } public void getU(String i,final Ds ds){ OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder() .get() .url("https://www.zhaoapi.cn/product/getOrders?uid=4582&page="+i) .build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { ds.b(e.getMessage()); } @Override public void onResponse(Call call, Response response) throws IOException { if (response.isSuccessful()) { String str = response.body().string(); Gson gson = new Gson(); DingBean dingBean = gson.fromJson(str, DingBean.class); final List<DingBean.DataBean> list = dingBean.getData(); handler.post(new Runnable() { @Override public void run() { ds.a(list); } }); } } }); } @Override public void a(List<DingBean.DataBean> data) { if (i==1){ this.lists=data; mRv.addItemDecoration(new DividerItemDecoration(DingdanActivity.this, DividerItemDecoration.VERTICAL)); adapter = new MyRvAdapter(DingdanActivity.this, lists); mRv.setAdapter(adapter); }else{ lists.addAll(data); //添加分割线 mRv.addItemDecoration(new DividerItemDecoration(DingdanActivity.this, DividerItemDecoration.VERTICAL)); adapter = new MyRvAdapter(DingdanActivity.this, lists); mRv.setAdapter(adapter); } } @Override public void b(String msg) { } } interface Ds { void a(List<DingBean.DataBean> data); void b(String msg); }