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不能转换为android.support.v7.widget.GridLayoutManager
我发现下面这条线造成了坠机
((GridLayoutManager) mLayoutManager).getSpanCount()避免崩溃的解决方案是什么?
mLayoutManager被声明为LinearLayoutManager
发布于 2016-11-09 11:33:56
您还应该在getSpanSize中进行类检查
public int getSpanSize(int position) {
return mLayoutManager instanceof GridLayoutManager && listResultAdapter.isHeaderOrFooter(position)
? ((GridLayoutManager) mLayoutManager).getSpanCount() : 1;
}https://stackoverflow.com/questions/40505730
复制相似问题