liangjingkanji / BRV

[使用文档] Android 快速构建 RecyclerView, 比 BRVAH 更简单强大
http://liangjingkanji.github.io/BRV/
MIT License
2.49k stars 317 forks source link

使用BRV ItemExpand因为其中的Any的时候无法支持Kotlin Serializable #352

Closed Xeldow closed 1 year ago

Xeldow commented 1 year ago

问题描述

期望行为

如何复现

任何业务相关问题没有fork仓库复现问题一律无法解决, 凭空猜测只会让问题晦涩难懂, 大量耽误项目维护时间

截图

image 异常堆栈信息或者手机截图/视频(拖拽到输入框即可上传)

版本

liangjingkanji commented 1 year ago

使用属性访问方法getter形式,不要直接让itemSublist序列化

Xeldow commented 1 year ago

image 我使用了这种方式 image 最终还是报错了 Caused by: java.lang.ClassCastException: MiaoChildItem cannot be cast to MiaoItem at MiaoItem$$serializer.serialize(MiaoItem.kt:19)

liangjingkanji commented 1 year ago

itemSublist仅仅是代理, 你无需给他赋值, 你现在是语法问题导致报错了

请参考Demo示例代码

liangjingkanji commented 1 year ago

如果依然存在问题请fork仓库复现问题, 可以立即快速解决, 几乎大部分issues都是因为猜测问题导致解决缓慢

Xeldow commented 1 year ago

感谢您的耐心解答!我把相关代码弄到demo里面去了,安装后返回桌面触发onPause后就可以复现 https://github.com/Xeldow/KtDemo

Xeldow commented 1 year ago

itemSublist仅仅是代理, 你无需给他赋值, 你现在是语法问题导致报错了

请参考Demo示例代码

补充一下,这个方法试过了,还是不行。不过今天下午在弄demo的时候发现一个神奇的东西,如果支持操作数据但是不初始化RecycleView相关的操作,就没有问题

Xeldow commented 1 year ago

找到原因了···原来BRV会把元数据的List改造,把MiaoChildItem给add到了MutableList中导致解析错误,看来不能直接把元数据传入BRV

liangjingkanji commented 1 year ago

令我感到震惊的是你竟然没有察觉到是SaveData.save()导致的崩溃

BRV实现多类型列表当然需要修改models数据集合的元素....

Xeldow commented 1 year ago

令我感到震惊的是你竟然没有察觉到是SaveData.save()导致的崩溃

BRV实现多类型列表当然需要修改models数据集合的元素....

🤦🏻‍♀️没想明白多类型列表会改到 models 中的元素。。那其实如何有做数据保存的需求的话就不能用分组的模式了吧(因为会改变元数据)现在我不用分组列表,直接用多类型也达到了效果,可惜就是不能折叠了