购物车首页展示布局与代码

《依赖》
implementation ‘com.jakewharton:butterknife:9.0.0-rc1’
annotationProcessor ‘com.jakewharton:butterknife-compiler:9.0.0-rc1’
implementation ‘com.squareup.retrofit2:adapter-rxjava2:2.4.0’
implementation ‘com.squareup.retrofit2:converter-gson:2.4.0’
implementation ‘io.reactivex.rxjava2:rxandroid:2.1.0’
implementation ‘com.facebook.fresco:fresco:1.11.0’
implementation ‘com.github.xiaohaibin:XBanner:1.6.6’
implementation project(’:xrecyclerview’)

《Fragment购物车首页展示代码》
public class Frag_01 extends Fragment implements Views {

private XRecyclerView xrecycler;
private PresenterIml presenterIml;
private ShouYeAdapter adapter;
private ArrayList<BaseBean> baseBeans = new ArrayList<>();

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.frag_01, container, false);
    xrecycler = (XRecyclerView) view.findViewById(R.id.xrecycler);
    presenterIml = new PresenterIml(new ModelIml(), this);
    return view;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
    linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    adapter = new ShouYeAdapter(getActivity());
    xrecycler.setLayoutManager(linearLayoutManager);
    xrecycler.setAdapter(adapter);
    presenterIml.doget(0, "/small/commodity/v1/bannerShow", null);

}

//调用presenter层的内存泄漏方法
@Override
public void onDestroy() {
    super.onDestroy();
    presenterIml.destory();
}

@Override
public void success(int type, String data) {

    if (type == 0) {

        Gson gson = new Gson();
        BannerBean bannerBean = gson.fromJson(data, BannerBean.class);
        baseBeans.add(bannerBean);
        presenterIml.doget(1, "/small/commodity/v1/commodityList", null);

    } else {
        Gson gson = new Gson();
        ShopBean shopBean = gson.fromJson(data, ShopBean.class);
        ShopBean.ResultBean.MlssBean mlss = shopBean.getResult().getMlss();
        ShopBean.ResultBean.PzshBean pzsh = shopBean.getResult().getPzsh();
        ShopBean.ResultBean.RxxpBean rxxp = shopBean.getResult().getRxxp();
        baseBeans.add(rxxp);
        baseBeans.add(mlss);
        baseBeans.add(pzsh);
        adapter.setList(baseBeans);
    }
}

@Override
public void fail(int type, String error) {

}

}

《购物车首页代码bean类需要另写一个接口BaseBean让其bean类中继承BaseBean 》
public interface BaseBean {
}

《轮播用fresco显示图片注意事项》
在这里插入图片描述

《使用fresco显示图片需要》
新建一个类继承application Fresco.initialize(this)配置调用 然后在清单文件中name一下新建的类名
以下是配置Fresco与自定义缓存路径代码

public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
Fresco.initialize(this, ImagePipelineConfig.newBuilder(App.this)
.setMainDiskCacheConfig(
DiskCacheConfig.newBuilder(this)
.setBaseDirectoryPath(new File(Environment.getExternalStorageDirectory()
.getAbsolutePath()))
.setMaxCacheSize(10 * 1024 * 1024)
.build()
).build());
}
}

《Xbanner使用fresco显示还需要设置一个布局执行强转使用》
强转使用代码在以下首页适配器中

<?xml version="1.0" encoding="utf-8"?>

<com.facebook.drawee.view.SimpleDraweeView xmlns:android=“http://schemas.android.com/apk/res/android
android:id="@+id/simple"
android:layout_width=“match_parent”
android:layout_height=“200dp” />

《ShouYeAdapter 主页面适配器》
public class ShouYeAdapter extends RecyclerView.Adapter {
private final Context context;
private ArrayList list = new ArrayList<>();

public ShouYeAdapter(Context context) {
    this.context = context;
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    RecyclerView.ViewHolder viewHolder = null;
    switch (i) {
        case 0:
            //xbanner布局
            View view = View.inflate(context, R.layout.adapter_itme0, null);
            viewHolder = new ViewHolder_01(view);
            break;
        case 1:
        case 2:
        case 3:
            //title布局
            View view1 = View.inflate(context, R.layout.adapter_itme, null);
            viewHolder = new ShopViewHolder(view1);
            break;
    }
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
    BaseBean baseBean = list.get(i);
    if (baseBean instanceof BannerBean) {
        ViewHolder_01 mviewHolder_01 = (ViewHolder_01) viewHolder;
        BannerBean mbannerBean = (BannerBean) baseBean;
        mviewHolder_01.xbanner.setBannerData(R.layout.image_itme, mbannerBean.getResult());
        mviewHolder_01.xbanner.loadImage(new XBanner.XBannerAdapter() {
            @Override
            public void loadBanner(XBanner banner, Object model, View view, int position) {
                BannerBean.ResultBean bean = (BannerBean.ResultBean) model;
                ((SimpleDraweeView) view).setImageURI(bean.getImageUrl());
            }
        });
    } else if (baseBean instanceof ShopBean.ResultBean.RxxpBean) {
        ShopViewHolder shopViewHolder_01 = (ShopViewHolder) viewHolder;
        ShopBean.ResultBean.RxxpBean rxxpBean = (ShopBean.ResultBean.RxxpBean) baseBean;
        shopViewHolder_01.title.setText("热销新品");

    } else if (baseBean instanceof ShopBean.ResultBean.MlssBean) {
        ShopViewHolder shopViewHolder_02 = (ShopViewHolder) viewHolder;
        ShopBean.ResultBean.MlssBean mlssBean = (ShopBean.ResultBean.MlssBean) baseBean;
        shopViewHolder_02.title.setText("魔力时尚");

        MlssAdapter mlssAdapter = new MlssAdapter(context, mlssBean.getCommodityList());
        LinearLayoutManager mlssManager = new LinearLayoutManager(context);
        mlssManager.setOrientation(LinearLayoutManager.VERTICAL);
        shopViewHolder_02.recycler.setLayoutManager(mlssManager);
        shopViewHolder_02.recycler.setAdapter(mlssAdapter);
        mlssAdapter.notifyDataSetChanged();


    } else if (baseBean instanceof ShopBean.ResultBean.PzshBean) {
        ShopViewHolder shopViewHolder_03 = (ShopViewHolder) viewHolder;
        ShopBean.ResultBean.PzshBean pzshBean = (ShopBean.ResultBean.PzshBean) baseBean;
        shopViewHolder_03.title.setText("品质生活");
    }
}

@Override
public int getItemViewType(int position) {
    BaseBean baseBean = list.get(position);
    if (baseBean instanceof BannerBean) {
        return 0;
    } else if (baseBean instanceof ShopBean.ResultBean.RxxpBean) {
        return 1;
    } else if (baseBean instanceof ShopBean.ResultBean.MlssBean) {
        return 2;
    } else {
        return 3;
    }
}

@Override
public int getItemCount() {
    return list.size();
}

public void setList(ArrayList<BaseBean> list) {
    this.list = list;
    notifyDataSetChanged();
}

//Banner
private class ViewHolder_01 extends RecyclerView.ViewHolder {

    XBanner xbanner;

    public ViewHolder_01(@NonNull View itemView) {
        super(itemView);
        xbanner = (XBanner) itemView.findViewById(R.id.xbanner);
    }
}

//热销新品  魔力时尚   品质生活
private class ShopViewHolder extends RecyclerView.ViewHolder {

    TextView title;
    RecyclerView recycler;

    public ShopViewHolder(@NonNull View itemView) {
        super(itemView);
        recycler = (RecyclerView) itemView.findViewById(R.id.recycler);
        title = (TextView) itemView.findViewById(R.id.text_title);
    }
}

}

《魔丽时尚数据适配器》
public class MlssAdapter extends RecyclerView.Adapter<MlssAdapter.ViewHolder> {

private final Context context;
private List<ShopBean.ResultBean.MlssBean.CommodityListBeanXX> xxlist = new ArrayList<>();

public MlssAdapter(Context context, List<ShopBean.ResultBean.MlssBean.CommodityListBeanXX> xxList) {
    this.context = context;
    this.xxlist = xxList;
}

@NonNull
@Override
public MlssAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = View.inflate(context, R.layout.mlss_itme, null);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull MlssAdapter.ViewHolder viewHolder, int i) {
    viewHolder.simp.setImageURI(xxlist.get(i).getMasterPic());
    viewHolder.text_01.setText(xxlist.get(i).getCommodityName());
    viewHolder.text_02.setText(xxlist.get(i).getPrice() + "");
}

@Override
public int getItemCount() {
    return xxlist.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {

    SimpleDraweeView simp;
    TextView text_01, text_02;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        simp = (SimpleDraweeView) itemView.findViewById(R.id.mlss_simp);
        text_01 = (TextView) itemView.findViewById(R.id.mlss_text_01);
        text_02 = (TextView) itemView.findViewById(R.id.mlss_text_02);
    }
}

}

《adapter数据列表布局》

<RelativeLayout
    android:id="@+id/layout"
    android:layout_width="match_parent"
    android:layout_height="30dp">

    <TextView
        android:id="@+id/text_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="123"
        android:textSize="16sp" />
</RelativeLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/layout" />

《adapter轮播图布局》
<android.support.constraint.ConstraintLayout xmlns:android=“http://schemas.android.com/apk/res/android
android:layout_width=“match_parent”
android:layout_height=“match_parent”>

<com.stx.xhb.xbanner.XBanner
    android:id="@+id/xbanner"
    android:layout_width="match_parent"
    android:layout_height="180dp" />

</android.support.constraint.ConstraintLayout>

《魔力时尚数据展示布局》

<RelativeLayout
    android:id="@+id/layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/mlss_simp"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        app:placeholderImage="@mipmap/ic_launcher" />

    <TextView
        android:id="@+id/mlss_text_01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="11dp"
        android:layout_toRightOf="@id/mlss_simp"
        android:text="568"
        android:textSize="18sp" />

    <TextView
        android:id="@+id/mlss_text_02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/mlss_text_01"
        android:layout_marginTop="20dp"
        android:layout_toRightOf="@id/mlss_simp"
        android:text="钱"
        android:textColor="#f00" />
</RelativeLayout>

日销新品 与品质生活布局与布局与代码写法大致相同

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值