package com.aptoide.amethyst;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import com.aptoide.amethyst.adapters.SpannableRecyclerAdapter;
import com.aptoide.amethyst.utils.AptoideUtils;
/**
* Created by rmateus on 05/06/15.
*/
public abstract class GridRecyclerFragment extends AptoideRecyclerFragment {
@Override
public void setLayoutManager(final RecyclerView recyclerView) {
final GridLayoutManager gridLayoutManager = new GridLayoutManager(recyclerView.getContext(), getColumnSize() * 2);
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if(!(recyclerView.getAdapter() instanceof SpannableRecyclerAdapter)){
throw new IllegalStateException("RecyclerView adapter must implement SpannableRecyclerAdapter");
}
return AptoideUtils.UI.getSpanSize(recyclerView, position);
}
});
// we need to force the spanCount, or it will crash.
// https://code.google.com/p/android/issues/detail?id=182400
gridLayoutManager.setSpanCount(getColumnSize()* 2);
recyclerView.setLayoutManager(gridLayoutManager);
}
}