【发布时间】:2016-11-09 19:33:56
【问题描述】:
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
【问题讨论】:
-
顺便说一句,为什么将
mLayoutManager声明为LinearLayoutManager却将其用作GridLayoutManager? -
这怎么可能?
-
实际上我尝试过这样做,但是当我调用 notifydataset 更改时它崩溃了我尝试使用 gridlayoutmanager setspancount
标签: android android-recyclerview android-support-library linearlayoutmanager