private RecyclerView mRecylerView; private GriViewAdapter mAdapter; private GridLayoutManager gridLayoutManager;
mRecylerView.setAdapter(mAdapter); mRecylerView.setNestedScrollingEnabled(false); 设置一行显示的数目18 gridLayoutManager = new GridLayoutManager(getContext(), 18, GridLayoutManager.VERTICAL, false); mRecylerView.setLayoutManager(gridLayoutManager); 根据数据类型显示占据的item个数 gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { int type = mAdapter.getItemViewType(position); switch (type) { case GriViewAdapter.ITEM_VIEW_TYPE_0: return 1; case GriViewAdapter.ITEM_VIEW_TYPE_1: return 2; } return 1; } }); 设置间距 HashMap<String, Integer> stringIntegerHashMap = new HashMap<String, Integer>(); stringIntegerHashMap.put(SpaceItemDecoration.TOP, 0); stringIntegerHashMap.put(SpaceItemDecoration.BOTTOM, 4); stringIntegerHashMap.put(SpaceItemDecoration.LEFT, 1); stringIntegerHashMap.put(SpaceItemDecoration.RIGHT, 1); mRecylerView.addItemDecoration(new SpaceItemDecoration(stringIntegerHashMap));
adapter:
@Override public void onBindViewHolder(ViewHolder holder, final int position) { int type = getItemViewType(position); switch (type) { case ITEM_VIEW_TYPE_0: break; case ITEM_VIEW_TYPE_1: break; } } @Override public int getItemViewType(int position) { if (position < mKeyList.size() - 1) { return ITEM_VIEW_TYPE_0; } else { return ITEM_VIEW_TYPE_1; } }