miaowmiaow / fragmject

fragmject is a learning project prepared for Kotlin and Jetpack Compose. | fragmject 是一个为初学者准备的上手项目。 通过对 Kotlin 和 Compose 的系统运用,实现的一个功能完备符合主流市场标准 App。 fragmject 没有复杂的业务和多余的封装, 完全依照 Android Developer 官方的写法。 代码简单,内容全面,快速上手,对理解其他项目设计思想和封装技巧也很有帮助。
Apache License 2.0
1.33k stars 237 forks source link

列表分页查询后,每次重建Fragment 后LiveData缓存的数据都重复添加到list #11

Closed dalingge closed 2 years ago

dalingge commented 2 years ago
WeChat094d63c6d20461f8a486027d1e1b78eb
miaowmiaow commented 2 years ago

感谢反馈,麻烦描述下操作步骤或其他能帮助我定位问题的信息😁

dalingge commented 2 years ago

感谢反馈,麻烦描述下操作步骤或其他能帮助我定位问题的信息😁

首页列表进行分页查询后,点击进入详情页在返回首页,这个时候首页Fragment 重建后,ViewModel会重新请求上一次分页的页码,你首页的ArticleAdapter()是一个常量里面的list没有被清空,这个时候重复请求页码的数据就会重新添加进list里面

miaowmiaow commented 2 years ago

感谢反馈,麻烦描述下操作步骤或其他能帮助我定位问题的信息😁

首页列表进行分页查询后,点击进入详情页在返回首页,这个时候首页Fragment 重建后,ViewModel会重新请求上一次分页的页码,你首页的ArticleAdapter()是一个常量里面的list没有被清空,这个时候重复请求页码的数据就会重新添加进list里面

通过你的反馈,定位到问题是由 LiveData 粘性事件导致。目前想到两种解决方案:一是视图销毁时清除 LiveData 的数据,二是使用 SingleLiveEvent 。相关代码已经更新,如果你有更好的方案欢迎一起交流😁