package com.simplecity.amp_library.ui.recyclerview; import android.support.v7.widget.GridLayoutManager; import com.simplecity.amp_library.model.AdaptableItem; import com.simplecity.amp_library.ui.adapters.ItemAdapter; import java.util.List; /** * A custom {@link GridLayoutManager.SpanSizeLookup} which determines the span size from the {@link AdaptableItem} * at the position of the lookup. */ public class AdaptableSpanSizeLookup extends GridLayoutManager.SpanSizeLookup { private List<AdaptableItem> items; private int spanCount; public AdaptableSpanSizeLookup(ItemAdapter itemAdapter, int spanCount) { this.items = itemAdapter.items; this.spanCount = spanCount; } @Override public int getSpanSize(int position) { if (position >= 0 && position < items.size()) { return items.get(position).getSpanSize(spanCount); } return 1; } }