Невозможно привести LinearLayoutManager к GridLayoutManager

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

Выше кода сбой говоря java.ленг.ClassCastException: android.поддержка.v7.штучка.LinearLayoutManager нельзя привести к android.поддержка.v7.штучка.GridLayoutManager

Я понял, что ниже линии вызывает сбой

((GridLayoutManager) mLayoutManager).getSpanCount()

каким может быть решение, чтобы избежать аварии

mLayoutManager объявлен как LinearLayoutManager

1 ответ

  1. Вы также должны сделать проверку класса внутри getSpanSize:

    public int getSpanSize(int position) {
         return mLayoutManager instanceof GridLayoutManager && listResultAdapter.isHeaderOrFooter(position) 
                 ? ((GridLayoutManager) mLayoutManager).getSpanCount() : 1;
    }