关闭

RecyclerView嵌套RecyclerView

30417人阅读 评论(30) 收藏 举报
分类:

ListView嵌套GridView http://blog.csdn.net/baiyuliang2013/article/details/42646289

RecyclerView下拉刷新上拉加载(一)http://blog.csdn.net/baiyuliang2013/article/details/51506036

RecyclerView下拉刷新上拉加载(二)http://blog.csdn.net/baiyuliang2013/article/details/51506354

RecyclerView下拉刷新上拉加载(三)http://blog.csdn.net/baiyuliang2013/article/details/51516727

延伸:仿微信、QQ评论点击事件

趁热打铁,接着前几篇继续,不说废话了,先上图,看看本篇文章要实现的是什么效果:

这里写图片描述 这里写图片描述

之前实现过ListView嵌套GridView实现类似的效果,那么既然这几篇一直在讲RecylerView,并且RecylerView这么强大,那就用RecylerView实现以下呗!

实现思路:

1.在外层的item布局中放一个RecyclerView用来显示网格布局:

这里写图片描述

2.增加一个ImageAdapter,用来展示图片;

3.在原InfoAdapter中对图片数据进行处理:

  if(infoBean.getImgList()!=null&&infoBean.getImgList().size()>0){
            ImageAdapter imageAdapter = new ImageAdapter(context, infoBean.getImgList());
            holder.rv_grid.setLayoutManager(new GridLayoutManager(context,3));
            holder.rv_grid.setAdapter(imageAdapter);
            holder.rv_grid.setVisibility(View.VISIBLE);
        }else{
            holder.rv_grid.setVisibility(View.GONE);
        }

注意判断图片列表是否为空的情况,为空时不显示网格布局!

好了,运行代码,代码运行起来后,有一个奇怪的问题,就是网格布局只显示了一行也就是三张图片,可我明明设置了6张,打印下log后,确定adapter中6张是全部加载了,但却没显示完全!

经过测试最终找到原因,是把网格布局item中的父控件和imageview全部设置设置成了match_parent,而更换成一个固定值后,成功了!6张图片显示完全!可又出现了一个问题,因为你并不知道屏幕宽度,而在xml中设置固定宽高后必然导致布局中图片宽高显示不均的问题!如果大家看过之前的ListView嵌套GridView的文章,那么就知道此时我们该怎么做了!对,就是动态计算网格布局中ImageView的宽高:

在ImageAdapter中:

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = mInflater.inflate(R.layout.item_grid, parent, false);
        //动态设置ImageView的宽高,根据自己每行item数量计算
        //dm.widthPixels-dip2px(20)即屏幕宽度-左右10dp+10dp=20dp再转换为px的宽度,最后/3得到每个item的宽高
        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams((dm.widthPixels - dip2px(20)) / 3, (dm.widthPixels - dip2px(20)) / 3);
        view.setLayoutParams(lp);
        return new MyViewHolder(view);
    }

屏幕宽度-左右边距宽度/每行的item数量(如果设置有间距,还要减掉间距)即可得到一个宽度,然后设置view的宽高值,便可得到一个标准的正方形图片!

图片的点击事件并没有添加,只需在ImageAdapter中添加即可:

  @Override
    public void onBindViewHolder(MyViewHolder holder, final int position) {
        super.onBindViewHolder(holder, position);
        String url = (String) listDatas.get(position);//转换
        fb.display(holder.iv, url);
        holder.iv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context, "position>>"+position, Toast.LENGTH_SHORT).show();
            }
        });
    }

例子比较简单,其它需求可自行添加!

ASdemo下载地址:http://download.csdn.net/detail/baiyuliang2013/9533422

1
10
查看评论

Android中RecyclerView嵌套RecyclerView或嵌套ListView

效果图: RecyclerView嵌套RecyclerView RecyclerView嵌套ListView 原理 RecyclerView嵌套RecyclerView的条目,项目中可能会经常有这样的需求,但是我们将子条目设置为RecyclerView之后,却显示不出来。自己试了...
  • zhaihaohao1
  • zhaihaohao1
  • 2016-07-08 18:09
  • 14275

RecyclerView 嵌套遇到的坑

在项目中根据原型图实现代码 思路:最外层是一个ScrollView  然后下面的细节是RecyclerView的二级嵌套 布局文件 最外层 <Scrollview android:layout_width="match_parent&qu...
  • dorytmx
  • dorytmx
  • 2016-12-30 14:21
  • 5191

简单解决RecyclerView嵌套的RecyclerView条目显示不全和宽度不能铺满

第一个RecyclerView的Adapter @Override public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(pa...
  • cheng9981
  • cheng9981
  • 2016-12-05 13:07
  • 7958

RecyclerView嵌套RecyclerView

版权声明:转载请注明出处:白玉梁的专栏http://blog.csdn.net/baiyuliang2013 ListView嵌套GridView http://blog.csdn.net/baiyuliang2013/article/details/42646289 Recycl...
  • qq_35114086
  • qq_35114086
  • 2016-11-25 09:24
  • 2292

RecyclerView嵌套RecyclerView滑动冲突

这样一个界面: 顶部为Tablayout,下面关联ViewPager,ViewPager里面是Fragment界面,里面有个水平布局的RecyclerView。 滑动水平RecyclerView时很不流畅,经常触发外部RecyclerView的滚动事件。 解决: 重写外部的RecyclerView:...
  • ww96054993
  • ww96054993
  • 2017-06-27 19:49
  • 2707

与ListView不同,RecyclerView的嵌套解决

1、问题ListView的item中嵌套了RecyclerView实现水平方向列表,导致RecyclerView高度不能正常显示。2、传统解决方案嵌套问题最基本的解决方法是重写onMeasure方法,手动测量ViewGroup的高度或者宽度。这里,因为我们的RecyclerView是水平的,而且每一...
  • jay_skye
  • jay_skye
  • 2016-05-16 15:48
  • 4520

RecyclerView列表嵌套情况下单列表实现子view复用

RecyclerView列表嵌套情况下单列表实现子view复用标签(空格分隔): Android情况 开发中有时候会遇到这样的情况:外部是一个RecyclerView,每个item的内部还存在着另外一个列表,这种情况下的解决方法,我想到2种. 1. 是使用列表嵌套,在外层RecyclerView...
  • longforus
  • longforus
  • 2017-11-22 20:57
  • 368

Recyclerview嵌套Recyclerview案列

  • 2016-05-27 18:20
  • 260KB
  • 下载

RecyclerView中嵌套RecyclerView或其他可滑动布局抢占焦点的问题

RecyclerView中嵌套RecyclerView或其他可滑动布局抢占焦点的问题的解决办法下面先看一下问题所导致的现象:可以看到,当我们第一次打开app的时候,第一个item是没有完整显示的,给人的感觉是向上有了一段位置的偏移,这个问题就是RecyclerView中嵌套RecyclerView所...
  • qq_19560943
  • qq_19560943
  • 2017-08-12 17:29
  • 2198

Android解决RecyclerView嵌套RecyclerView滑动卡顿

Android 利用RecyclerView仿淘宝订单页面实现,解决RecyclerView嵌套RecyclerView滑动卡顿 不上图,就是浪费感情 问题: 最近在项目中碰到一个问题,类似于淘宝订单页面,由于每个订单项中可能会包含多个具体的项目,要想实现这种效果,一般来说需要在Recyc...
  • feiyangbahu1
  • feiyangbahu1
  • 2016-08-25 01:55
  • 20222
    个人资料
    • 访问:355452次
    • 积分:4780
    • 等级:
    • 排名:第7151名
    • 原创:95篇
    • 转载:10篇
    • 译文:0篇
    • 评论:393条
    我的微博
    微信公众号AndroidMax
    博客专栏
    最新评论