RecyclerView嵌套RecyclerView问题在android应用中是很常见的,也是很重要的,话不多说,直接进去主题。

一.效果图

在这里插入图片描述

二. xml文件

1.activity页面 (activity_good_evaluation.xml)
在这里插入图片描述
2.外层item页面 (good_eval_item.xml)
在这里插入图片描述
3内层item页面 (eval_image_item.xml)
在这里插入图片描述

三.创建Adapter文件

因为这里是两层嵌套,所以要创建两个

1.内层Adapter (EvalImageAdapter)

在这里插入图片描述

2.外层Adapter (GoodEvaluationAdapter)

重要的逻辑都是在外层Adapter里实现的,因为内容比较多,我就把重要的截下,代码如下:
在这里插入图片描述
在这里插入图片描述
完成上面的步骤,内层RecyclerView就有值显示啦,接下啦就是在主页面中如何给外层RecyclerView设值

四,使用

1.新建一个数组,并在oncreate中初始化

 private List<Map<String,Object>> comment_list=null;

2.创建适配器,在onCreate时调用

    private void createAdapter() {
        linearLayoutManager = new LinearLayoutManager(getApplicationContext());
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        good_eval_rv.setLayoutManager(linearLayoutManager);
        goodEvaluationAdapter = new GoodEvaluationAdapter(getApplicationContext());
        good_eval_rv.setAdapter(goodEvaluationAdapter);
    }

3.获取到后台数据,并为Adapter设置数据,并刷新

   Map<String,Object> outMap = new HashMap<>();
   List<Map<String,Object>> evalImageList=new ArrayList<>();
    for(int j=0;j<imageList.length();j++){
           JSONObject imageItem = imageList.getJSONObject(j);
           Map<String,Object> imageMap = new HashMap();
           String url =  Helper.fixImgUrl(imageItem.getString("url"));
           imageMap.put("url",url);
           evalImageList.add(imageMap);
     }
   outMap.put("head_img",imgUrl);
   outMap.put("user_name",item.getString("user_name"));
   outMap.put("eval_star",score);
   outMap.put("comment_time",comment_time);
   outMap.put("eval_specs"," || 规格:"+specs[0]+","+specs[1]);
   outMap.put("eval_content",content);
   outMap.put("evalImageList",evalImageList);
   comment_list.add(outMap);
 //set数据,并刷新
   goodEvaluationAdapter.setData(comment_list);
   goodEvaluationAdapter.notifyDataSetChanged();
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐