RecycleView的高级用法

RecycleView的高级用法_第1张图片

看图下面的例子,要做下面的你会考虑使用RecycleView 跟什么结合?可能你会说.RecycleView + GrldView或者RecycleView+RecycleyView

现在我说一种RecycleView进阶用法,只需要一个RecycleView就可以做到,RecycleView的高级用法_第2张图片
demo中就有MainActivity跟各种各样的适配器,和对应的实体类组成
BitPicDelegate:就是大图类型
FourPicDelegate:就是一行四个图片的类型
ThreddDPicDelegate:就是显示一行三个图片的类型
TowPicDeleagte:就是显示一行2个图片的类型
TitleDelegate: 就是标题栏:(我是x个)
每一个xxxDelegate都有自己对应的布局,当前你也可以使用相同的布局

控制每一行显示多个item最重要的code就是在,MainActivity的代码中的

gridLayoutManager.setSpanSizeLookup

函数,这里控制了不同类型,每行所占的item数

		/**
         * demo这里一行对多12个item,这个12是由每行显示的最小公倍数,我这里显示的类型有每行有1,2,3,4个,所以最小公倍数为
         * 12
         */
        GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 12);

        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                final ShowBean showBean = showBeanList.get(position);
                if (showBean == null) {
                    return 0;
                }

                switch (showBean.getShowType()) {
                    case ShowBean.Type_Title:
                        /**
                         * 指标题栏一个就占12个
                         */
                        return 12;
                    case ShowBean.Type_Big_Pic:
                        /**
                         * 大图一个就占12个
                         */
                        return 12;
                    case ShowBean.Type_Tow_Pic:
                        /**
                         * 一行显示两个图片,那一个图片所占的位置为6个
                         */
                        return 6;
                    case ShowBean.Type_Three_Pic:
                        /**
                         * 一行显示三个图片,那一个图片所占的位置为4个
                         */
                        return 4;
                    case ShowBean.Type_Four_Pic:
                        /**
                         * 一行显示四个图片,那一个图片所占的位置为3个
                         */
                        return 3;
                    default:
                        return -1;
                }
            }
        });

在实际的开发中,还可以完成更复杂的局面布局,而且不用担心各种RecycleView嵌套问题
demo的传送门:
demo中结合万能适配器,方便一点
github地址

你可能感兴趣的:(闲谈)