Closed LeonShannon closed 1 year ago
staggered()
这个函数本身就是设置layoutManager, 但是我看你又再layoutManager
设置一遍, 我不太能理解你写的代码含义
查看异常本身我认为发生在com/drake/brv/DefaultDecoration.kt:727
when (layoutManager) {
is StaggeredGridLayoutManager -> {
val spanCount = layoutManager.spanCount
val spanIndex = (layoutManager.findViewByPosition(position)?.layoutParams
as StaggeredGridLayoutManager.LayoutParams).spanIndex + 1
我认为这个异常和你自己定义的LayoutManager可能存在一定关系
设置了两次layoutManager,是我在测试代码。线上环境就只有staggered(2)
你提供不了fork仓库复现的代码, 所以我只能猜测, 上面就是我的猜测
我是在list 上面有个header,有没有可能 header 数据为空了然后导致的 NPE,本地无法复现不确定。
我发现有个方法可以指定布局类型添加 itemDecoration
,
我先把这个这方法加上,然后再做一下空数据,不添加 header 的处理,线上跑跑看看还有问题没
我认为问题发生在
layoutManager.findViewByPosition(position) 返回null导致的NPE
已经发布新版本1.4.2
修复此问题
试了下如果没问题给个反馈吧
抱歉之前休假没有及时回复。 QA 找到了问题,不是所有机型都可以复现,目前发现是三星 S21 和华为部分机型稳定复现
业务点是添加一条新的数据到list 中,在添加之前有header 和瀑布流。(111 就是添加的那条内容)
使用addModels
是会产生崩溃问题,使用蓝框中方法,可以正常实现业务
我使用该方式,在 bugly 上面看,只是减少了部分 crash,不确定我说的addModels
是不是全部case了。需要这个版本上线之后继续观察
我发布的新版本1.4.2上线了只是减少了部分crash? 依旧存在这个问题是吗?
.... 我先把这个这方法加上,然后再做一下空数据,不添加 header 的处理,线上跑跑看看还有问题没
还是说你之前提到的那种解决方式?
以下为我修复代码, 该函数存在可能为null情况
不过你这个截图看着倒是挺眼熟, 这不是BRV的sample-首页布局抄的app界面吗
不是,减少的 crash 是我做了一些 header 数据的空判断。 截图是我们线上 App=。= 具体问题还没有追到,等我发了版我仔细研究下
我也是PS5玩家有用你们App(感觉你们算目前同类型最好的产品了, 二柄app太粗制滥造的感觉) 这个开源项目的"首页"示例就是抄的你们产品, 是我抄的太潦草吗? 你都没看出来 欢迎你们参与这个项目让brv/sample更完善, 开源用户即作者
我那天跑 demo 的时候,我看到你的首页样式还恍惚了呢。我说和我们咋那么像,hhhhhh,太巧了
因为感觉你们app做的很好很适合演示, 我写的也没你们好, 有空欢迎你优化下
如果线上新版本还存在该问题会继续跟踪问题
问题有解决吗?
问题描述
用了StaggeredGridLayoutManager的地方就是这里。但是没有复现出来
期望行为
如何复现
截图
异常堆栈信息或者手机截图/视频(拖拽到输入框即可上传)
版本