嵌套Recyclerview

xiaoxiao2025-10-17  5

Fragment public class FragmentLastPresetner extends AppDelegate{ private RecyclerView leftRecyclerView,rightRecyclerView; private LeftAdater leftAdater; private RightAdater adater; private List<LeftBean.DataBean> data1; @Override public int getlayoutId() { return R.layout.fragment_last; } @Override public void initviews() { leftRecyclerView = (RecyclerView)get(R.id.left_recyclerView); rightRecyclerView = (RecyclerView)get(R.id.right_recyclerView); doHttpleft(); doHttpright(1); } private void doHttpleft() { new HttpHelper().get("http://www.zhaoapi.cn/product/getCatagory").result(new HttpHelper.Httplistenner() { @Override public void success(String data) { Gson gson = new Gson(); LeftBean leftBean = gson.fromJson(data, LeftBean.class); data1 = leftBean.getData(); leftAdater.setList(data1); } @Override public void error(String error) { } }); leftAdater = new LeftAdater(context); LinearLayoutManager manager = new LinearLayoutManager(context); manager.setOrientation(LinearLayoutManager.VERTICAL); leftRecyclerView.setLayoutManager(manager); leftRecyclerView.setAdapter(leftAdater); leftAdater.click(new LeftAdater.SetOnclick() { @Override public void getonclick(int postion) { Toast.makeText(context,"id="+postion,Toast.LENGTH_SHORT).show(); int cid = data1.get(postion).getCid(); doHttpright(cid); } }); } private void doHttpright(int cid) { adater = new RightAdater(context); LinearLayoutManager manager = new LinearLayoutManager(context); rightRecyclerView.setLayoutManager(manager); rightRecyclerView.setAdapter(adater); new HttpHelper().get("http://www.zhaoapi.cn/product/getProductCatagory?cid="+cid).result(new HttpHelper.Httplistenner() { @Override public void success(String data) { Gson gson = new Gson(); RightBean rightBean = gson.fromJson(data, RightBean.class); List<RightBean.DataBean> rightData = rightBean.getData(); adater.setList(rightData); } @Override public void error(String error) { } }); } private Context context; @Override public void getContext(Context context) { this.context=context; } } 左侧适配器 public class LeftAdater extends RecyclerView.Adapter<LeftAdater.MyViewHoler> { public Context context; public LeftAdater(Context context) { this.context = context; } @NonNull @Override public LeftAdater.MyViewHoler onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view = View.inflate(context,R.layout.left_item,null); MyViewHoler myViewHoler = new MyViewHoler(view); return myViewHoler; } @Override public void onBindViewHolder(@NonNull LeftAdater.MyViewHoler myViewHoler, final int i) { myViewHoler.title.setText(list.get(i).getName()); myViewHoler.title.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { setOnclick.getonclick(i); } }); } @Override public int getItemCount() { return list.size(); } private List<LeftBean.DataBean> list=new ArrayList<>(); public void setList(List<LeftBean.DataBean> list) { this.list = list; } public class MyViewHoler extends RecyclerView.ViewHolder { TextView title; public MyViewHoler(@NonNull View itemView) { super(itemView); title = (TextView)itemView.findViewById(R.id.left_text); } } private SetOnclick setOnclick; //接口回调 public void click(SetOnclick setOnclick){ this.setOnclick=setOnclick; } //定义接口 public interface SetOnclick{ void getonclick(int postion); } } 右侧适配器 public class RightAdater extends RecyclerView.Adapter<RightAdater.MyViewHoler> { public Context context; public RightAdater(Context context) { this.context = context; } @NonNull @Override public RightAdater.MyViewHoler onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view = View.inflate(context,R.layout.right_item,null); MyViewHoler myViewHoler = new MyViewHoler(view); return myViewHoler; } @Override public void onBindViewHolder(@NonNull RightAdater.MyViewHoler myViewHoler, int i) { myViewHoler.title.setText(list.get(i).getName()); List<RightBean.DataBean.ListBean> data = this.list.get(i).getList(); RightChildAdater adater = new RightChildAdater(context); GridLayoutManager manager = new GridLayoutManager(context,3); myViewHoler.rightview.setLayoutManager(manager); myViewHoler.rightview.setAdapter(adater); adater.setList(data); } @Override public int getItemCount() { return list.size(); } private List<RightBean.DataBean> list= new ArrayList<>(); public void setList(List<RightBean.DataBean> list) { this.list = list; } public class MyViewHoler extends RecyclerView.ViewHolder { RecyclerView rightview; TextView title; public MyViewHoler(@NonNull View itemView) { super(itemView); title = (TextView)itemView.findViewById(R.id.right_text); rightview = (RecyclerView)itemView.findViewById(R.id.rightview); } } } 右侧适配器 展示列表 public class RightChildAdater extends RecyclerView.Adapter<RightChildAdater.MyViewHoler> { public Context context; public RightChildAdater(Context context) { this.context = context; } @NonNull @Override public RightChildAdater.MyViewHoler onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view = View.inflate(context,R.layout.right_child_item,null); MyViewHoler myViewHoler = new MyViewHoler(view); return myViewHoler; } @Override public void onBindViewHolder(@NonNull RightChildAdater.MyViewHoler myViewHoler, int i) { myViewHoler.title.setText(list.get(i).getName()); Glide.with(context).load(list.get(i).getIcon()).into(myViewHoler.pic); } @Override public int getItemCount() { return list.size(); } private List<RightBean.DataBean.ListBean> list=new ArrayList<>(); public void setList(List<RightBean.DataBean.ListBean> list) { this.list = list; } public class MyViewHoler extends RecyclerView.ViewHolder { ImageView pic; TextView title; public MyViewHoler(@NonNull View itemView) { super(itemView); title = (TextView)itemView.findViewById(R.id.right_chil_text); pic = (ImageView)itemView.findViewById(R.id.right_chil_pic); } } }
转载请注明原文地址: https://www.6miu.com/read-5038100.html

最新回复(0)