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;
                            }
                        });
                    }

上面的代码崩溃说 java.lang.ClassCastException: android.support.v7.widget.LinearLayoutManager cannot be cast to android.support.v7.widget.GridLayoutManager

我发现下面的行导致崩溃

((GridLayoutManager) mLayoutManager).getSpanCount()

避免崩溃的解决方案是什么

mLayoutManager 被声明为 LinearLayoutManager

4

1 回答 1

0

您还应该在里面进行类检查getSpanSize

public int getSpanSize(int position) {
     return mLayoutManager instanceof GridLayoutManager && listResultAdapter.isHeaderOrFooter(position) 
             ? ((GridLayoutManager) mLayoutManager).getSpanCount() : 1;
}
于 2016-11-09T11:33:56.227 回答