RecycleView的高級用法

在這裏插入圖片描述

看圖下面的例子,要做下面的你會考慮使用RecycleView 跟什麼結合?可能你會說.RecycleView + GrldView或者RecycleView+RecycleyView

現在我說一種RecycleView進階用法,只需要一個RecycleView就可以做到,在這裏插入圖片描述
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地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章