如何实现具有多个布局的Recycler View [英] How to implement Recycler View with multiple layout

查看:781
本文介绍了如何实现具有多个布局的Recycler View的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想实现一个像这样的Recycler视图:



在开始时,我们有两个不同的布局,第一个布局是一个ViewPager
,第二个布局是一个ImageView,下面是gridView ...
在滚动gridView后出现,其他布局应该是不可见的



该怎么办?
thanks

解决方案




  • 使用GridLayoutManager

  • 定义3种类型的视图项(查看分页器,图像视图,普通)并实现 getItemViewType 方法。
  • 执行 onCreateViewHolder 创建相应的 ViewHolder 给出视图类型。
  • 最后,为每个视图类型设置跨度大小,如:


使用 setSpanSizeLookup 方法。

  mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup ){@Override 
public int getSpanSize(int position){
switch(mAdapter.getItemViewType(position)){
case MyAdapter.TYPE_VIEW_PAGER:
return 2;
case MyAdapter.TYPE_IMAGE_VIEW:
return 2;
case MyAdaper.TYPE_NORMAL:
return 1;
}
}
});


I want to implement a Recycler view like this:

at start, we have two different layout , first layout is a ViewPager and second layout is an ImageView and in following is gridView... after scrolling gridView come up and other layouts should be invisible

how can do it? thanks

解决方案

How can you do it:

  • Use GridLayoutManager
  • Define 3 types of view item (view pager, image view, normal) and implement getItemViewType method. Return correspond view type with it position.
  • Implement onCreateViewHolder create the correspond ViewHolder with view type given.
  • Finally set span size for each view type like:

Use setSpanSizeLookup method.

mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {@Override
    public int getSpanSize(int position) {
        switch (mAdapter.getItemViewType(position)) {
            case MyAdapter.TYPE_VIEW_PAGER:
                return 2;
            case MyAdapter.TYPE_IMAGE_VIEW:
                return 2;
            case MyAdaper.TYPE_NORMAL:
                return 1;
        }
    }
});

这篇关于如何实现具有多个布局的Recycler View的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆