0
if (mLayoutManager instanceof GridLayoutManager) {
                        ((GridLayoutManager) mLayoutManager).setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
                            @Override
                            public int getSpanSize(int position) {
                                return listResultAdapter.isHeaderOrFooter(position) ? ((GridLayoutManager) mLayoutManager).getSpanCount() : 1;
                            }
                        });
                    }

Above code is crashing saying java.lang.ClassCastException: android.support.v7.widget.LinearLayoutManager cannot be cast to android.support.v7.widget.GridLayoutManager

I figured out below line is causing crash

((GridLayoutManager) mLayoutManager).getSpanCount()

what can be the solution to avoid crash

mLayoutManager is declared as LinearLayoutManager

amodkanthe
  • 4,345
  • 6
  • 36
  • 77

1 Answers1

0

You should also do the class check inside getSpanSize:

public int getSpanSize(int position) {
     return mLayoutManager instanceof GridLayoutManager && listResultAdapter.isHeaderOrFooter(position) 
             ? ((GridLayoutManager) mLayoutManager).getSpanCount() : 1;
}
shhp
  • 3,653
  • 2
  • 18
  • 23