安卓——RecyclerView的GridView模式如何合併grid格
阿新 • • 發佈:2019-01-10
RecyclerView的使用包括ListView模式、GridView模式以及瀑布流模式,使用GridView模式時,需要給RecyclerView設定GridLayoutManager,如下:
GridLayoutManager manager = new GridLayoutManager(getActivity(),2);
recyclerView.setLayoutManager(manager);
但有時我們要給RecyclerView設定Header、Footer,這時就需要將一行中的GridView模式單元格(如上面的程式碼中設定的2,即一行兩個單元格)進行合併,這就需要呼叫GridLayoutManager的setSpanSizeLookup()方法。
如程式碼所示,重寫getSpanSize(),通過呼叫adapter的getItemViewType()獲取相應position的viewType,然後做一些判斷,若該位置是你需要插入header或footer的position,則返回2,即該position的view佔用兩個單元格,反之該position的view是正常單元格,return 1,佔用一個單元格。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);
關於adapter的getItemViewType()的使用,可以自行百度,以後有時間我會做相應的補充。