1. 程式人生 > >安卓——RecyclerView的GridView模式如何合併grid格

安卓——RecyclerView的GridView模式如何合併grid格

RecyclerView的使用包括ListView模式、GridView模式以及瀑布流模式,使用GridView模式時,需要給RecyclerView設定GridLayoutManager,如下:

GridLayoutManager manager = new GridLayoutManager(getActivity(),2);
recyclerView.setLayoutManager(manager);
但有時我們要給RecyclerView設定Header、Footer,這時就需要將一行中的GridView模式單元格(如上面的程式碼中設定的2,即一行兩個單元格)進行合併,這就需要呼叫GridLayoutManager的setSpanSizeLookup()方法。
GridLayoutManager manager = new GridLayoutManager(getActivity(),2);
manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                int type = recyclerView.getAdapter().getItemViewType(position);
                if (type ==...) {
                    return 2;
                }
                return 1;
            }
        });
recyclerView.setLayoutManager(manager);
如程式碼所示,重寫getSpanSize(),通過呼叫adapter的getItemViewType()獲取相應position的viewType,然後做一些判斷,若該位置是你需要插入header或footer的position,則返回2,即該position的view佔用兩個單元格,反之該position的view是正常單元格,return 1,佔用一個單元格。

關於adapter的getItemViewType()的使用,可以自行百度,以後有時間我會做相應的補充。