仿京东分类

接口请求API

 //分类左侧
    @GET("/product/getCatagory")
    Observable<fenleizuo> fenlei();
    //分类右侧
    @GET("product/getProductCatagory")
    Observable<Fenleiyou> fenleiyou(@Query("cid")int id);

左侧data

 @Override
    public void data(fenleizuo fenleizuo) {
        List<fenleizuo.DataBean> data = fenleizuo.getData();
        // Toast.makeText(getActivity(), "data:" + data, Toast.LENGTH_SHORT).show();
        LinearLayoutManager manager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
        fenleiZuo.setLayoutManager(manager);
        FenleiAdapter adapter = new FenleiAdapter(getActivity(), data);
        fenleiZuo.setAdapter(adapter);
        //左侧的点击事件联动右侧
        adapter.setOnclicklistener(new FenleiAdapter.onclicklistener() {
            @Override
            public void onclicklistener(View view, int position) {
                int cid = fenleizuo.getData().get(position).getCid();
                mPresenter.fenleiyou(cid);
            }
        });
    }

左侧的适配器,,记得定义点击的事件,

package com.example.zk1022.mvp.ui.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.zk1022.R;
import com.example.zk1022.bean.fenleizuo;

import java.util.List;

public class FenleiAdapter extends RecyclerView.Adapter<FenleiAdapter.zuoHolder>{
    private Context context;
    private List<fenleizuo.DataBean> list;
    private onclicklistener onclicklistener;
    public interface onclicklistener{
        void onclicklistener(View view,int position);
    }
    public void setOnclicklistener(FenleiAdapter.onclicklistener onclicklistener) {
        this.onclicklistener = onclicklistener;
    }


    public FenleiAdapter(Context context, List<fenleizuo.DataBean> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public zuoHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.zuo_item, null);
        zuoHolder holder = new zuoHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull zuoHolder holder, int position) {
        holder.fenleizuo_name.setText(list.get(position).getName());
        if(onclicklistener!=null){
            holder.fenleizuo_name.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int i = holder.getLayoutPosition();
                    onclicklistener.onclicklistener(holder.itemView,i);
                }
            });
        }

    }

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

    class zuoHolder extends RecyclerView.ViewHolder{
        private final TextView fenleizuo_name;
        public zuoHolder(View itemView) {
            super(itemView);
            fenleizuo_name = itemView.findViewById(R.id.fenleizuo_name);
        }
    }
}

右侧data

//分类右侧
@Override
public void data_you(Fenleiyou fenleiyou) {
    List<Fenleiyou.DataBean> data = fenleiyou.getData();
   // Toast.makeText(getActivity(), "data:" + data, Toast.LENGTH_SHORT).show();
    FenleiYouAdapter adapter = new FenleiYouAdapter(getActivity(),fenleiyou);
    exlistView.setAdapter(adapter);
    
//定义默认展开列表
   int count = exlistView.getCount();
    for (int i = 0; i < count; i++) {
      exlistView.expandGroup(i);
    }
}

右侧适配器

package com.example.zk1022.mvp.ui.adapter;

import android.content.Context;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;

import com.example.zk1022.R;
import com.example.zk1022.bean.Fenleiyou;

import java.util.ArrayList;

public class FenleiYouAdapter extends BaseExpandableListAdapter{
    private Context context;
    private Fenleiyou fenleiyou1;

    public FenleiYouAdapter(Context context, Fenleiyou fenleiyou1) {
        this.context = context;
        this.fenleiyou1 = fenleiyou1;
    }

    @Override
    public int getGroupCount() {
        return fenleiyou1.getData().size();
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        return 1;
    }

    @Override
    public Object getGroup(int groupPosition) {
        return fenleiyou1.getData().get(groupPosition);
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return fenleiyou1.getData().get(groupPosition).getList().get(groupPosition);
    }

    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }

    @Override
    public boolean hasStableIds() {
        return false;
    }

    //右侧条目名
    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        View view = View.inflate(context, R.layout.fenleiyou_name, null);
        TextView fenleiyou_name = view.findViewById(R.id.fenleiyou_name);
        fenleiyou_name.setText(fenleiyou1.getData().get(groupPosition).getName());
        return view;
    }

    //右侧商品名
    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
        View view = LayoutInflater.from(context).inflate(R.layout.fenleiyou_srecy, null);
        RecyclerView shop_recyview = view.findViewById(R.id.shop_recyview);
        GridLayoutManager manager = new GridLayoutManager(context, 3);
        shop_recyview.setLayoutManager(manager);

        youChildAdapter adapter = new youChildAdapter(context, (ArrayList<Fenleiyou.DataBean>) fenleiyou1.getData(),groupPosition,childPosition);
        shop_recyview.setAdapter(adapter);

        return view;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return false;
    }
}

右侧条目下的商品适配器

package com.example.jd1012.mvp.ui.fragment.adapter;

import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.jd1012.R;
import com.example.jd1012.app.bean.You;
import com.facebook.drawee.view.SimpleDraweeView;

public class youChildAdapter extends RecyclerView.Adapter<youChildAdapter.childHolder>{
    private Context context;
    private You you;
    public youChildAdapter(Context context, You you) {
        this.context = context;
        this.you = you;
    }

    @NonNull
    @Override
    public childHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.youhai, null);
        childHolder holder = new childHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull childHolder holder, int position) {
        holder.child_name.setText(you.getData().get(position).getList().get(position).getName());
        String[] split = you.getData().get(position).getList().get(position).getIcon().split("\\|");
        Uri uri = Uri.parse(split[0]);
        holder.child_simp.setImageURI(uri);
    }

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


    class childHolder extends RecyclerView.ViewHolder{

        private final TextView child_name;
        private final SimpleDraweeView child_simp;

        public childHolder(View itemView) {
            super(itemView);
            child_name = itemView.findViewById(R.id.child_name);
            child_simp = itemView.findViewById(R.id.child_simp);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值