@Override public void onDetachedFromRecyclerView(RecyclerView recyclerView) { super.onDetachedFromRecyclerView(recyclerView); if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { GridLayoutManager gridManager = (GridLayoutManager) recyclerView.getLayoutManager(); gridManager.setSpanSizeLookup(originalSpanLookup); originalSpanLookup = null; spanCount = 1; } }
@Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { super.onAttachedToRecyclerView(recyclerView); if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { GridLayoutManager gridManager = (GridLayoutManager) recyclerView.getLayoutManager(); spanCount = gridManager.getSpanCount(); originalSpanLookup = gridManager.getSpanSizeLookup(); gridManager.setSpanSizeLookup(spanSizes); } }
/** * If a grid layout manager is set we sync the span count between the layout and the epoxy * adapter automatically. */ private void syncSpanCount() { LayoutManager layout = getLayoutManager(); if (layout instanceof GridLayoutManager && epoxyController != null) { GridLayoutManager grid = (GridLayoutManager) layout; if (epoxyController.getSpanCount() != grid.getSpanCount() || grid.getSpanSizeLookup() != epoxyController.getSpanSizeLookup()) { epoxyController.setSpanCount(grid.getSpanCount()); grid.setSpanSizeLookup(epoxyController.getSpanSizeLookup()); } } }
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) {
populateAdapter(); layoutManager = new GridLayoutManager(this, groupAdapter.getSpanCount()); layoutManager.setSpanSizeLookup(groupAdapter.getSpanSizeLookup());
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) {
private void setGridHeaderFooter(RecyclerView.LayoutManager layoutManager) { if (layoutManager instanceof GridLayoutManager) { final GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager; gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { boolean isShowHeader = (position == 0 && hasHeader()); boolean isShowFooter = (position == getItemCount() - 1 && hasFooter()); if (isShowFooter || isShowHeader) { return gridLayoutManager.getSpanCount(); } return 1; } }); } }
private void createLayoutManager() { layoutManager = new GridLayoutManager(this, GRID_SPAN_COUNT); layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { return adapter.isSection(position) ? GRID_SPAN_COUNT : 1; } }); }
@Override public void onClick(View v) { final GridLayoutManager manager = new GridLayoutManager(v.getContext(), 3); // we want progress view to fill entire row manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { return list.isRefreshing() && position == manager.getItemCount() ? manager.getSpanCount() : 1; } }); updateLayoutManager(manager); } });
public static boolean initSpanSizeLookup(final RecyclerView rv, final IHeaderAdapter adapter) { final RecyclerView.LayoutManager lm = rv.getLayoutManager(); if(lm != null && lm instanceof GridLayoutManager) { ((GridLayoutManager)lm).setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { if(rv == null) return 1; return adapter.isHeader(position) ? ((GridLayoutManager) lm).getSpanCount() : 1; } }); return true; } return false; }
if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { ((GridLayoutManager) recyclerView.getLayoutManager()) .setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) {
layout.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) {
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) {
mainImageAdapter = new MainImageAdapter(this); GridLayoutManager mLayoutManager = new GridLayoutManager(this, MainImageAdapter.SPAN_COUNT); mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) {