首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将LinearLayoutManager转换为GridLayoutManager

无法将LinearLayoutManager转换为GridLayoutManager
EN

Stack Overflow用户
提问于 2016-11-09 11:19:14
回答 1查看 553关注 0票数 0
代码语言:javascript
复制
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

我发现下面这条线造成了坠机

代码语言:javascript
复制
((GridLayoutManager) mLayoutManager).getSpanCount()

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

mLayoutManager被声明为LinearLayoutManager

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-09 11:33:56

您还应该在getSpanSize中进行类检查

代码语言:javascript
复制
public int getSpanSize(int position) {
     return mLayoutManager instanceof GridLayoutManager && listResultAdapter.isHeaderOrFooter(position) 
             ? ((GridLayoutManager) mLayoutManager).getSpanCount() : 1;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40505730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档