android中RecyclerView嵌套RecyclerView中,如何为内层RecyclerView设值的问题

Posted kaolagirl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中RecyclerView嵌套RecyclerView中,如何为内层RecyclerView设值的问题相关的知识,希望对你有一定的参考价值。

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();

以上是关于android中RecyclerView嵌套RecyclerView中,如何为内层RecyclerView设值的问题的主要内容,如果未能解决你的问题,请参考以下文章

Android RecyclerView嵌套RecyclerView

android中RecyclerView嵌套RecyclerView中,如何为内层RecyclerView设值的问题

android中RecyclerView嵌套问题中,内层RecyclerView区域无法响应Item点击事件

Android在开发中的使用技巧之解决ScrollView嵌套RecyclerView出现的系列问题

Android 中ViewPager嵌套RecyclerView出现滑动冲突的解决方案

从 Firestore 中检索嵌套对象并放入 Android 中的 RecyclerView?