nvue 聊天场景中使用 list cell在下拉加载历史消息时如何保持滚动位置?
下拉加载历史消息 将历史消息数据 unshift到list前 会导致滚动条跳到页面顶部 类似的需求很多 为什么官方不出一个解决办法?
下面是我这段时间来试过的所有相关办法
1: Weex cell组件的keep-scroll-position属性看上去可以完美的解决这个问题 但是很可惜uni-app并没有实现此属性
2:使用 dom.scrollToElement()跳回之前的位置 这种方法可以解决问题 但是体验极其差劲 页面会明显的闪烁
3:将list 和 cell 使用css翻转看起来可以完美解决这个问题 但是在某些场景下依然不合适
致辞曲线救国失败 放弃治疗 希望哪位大佬能够指点迷津
note744917
已学习并解决,感谢
2023-03-02 11:42
5***@qq.com
有没有这个保持位置的单独的思路和代码
2023-03-20 15:52
布朗
回复 note744917: 请教下聊天消息cell配置keep-scroll-position无效,HB版本3.7.3,你是怎么处理加载历史消息页面不滚动到顶的
2023-03-21 14:14
note744917
回复 布朗: cell的循环上必须设置 key,并且不能使用index作为key,我当时是忽略了这个问题才导致不生效的。
2023-03-23 21:26
7***@qq.com
回复 note744917: HBX版本3.7.9,<cell keep-scroll-position="true" v-for="(item, index) in list" :key="'card' + index">还是未生效
2023-04-07 15:29
2***@qq.com
当滚动条为非0高度 这个条件如果滑动稍微快一点就不行了
2023-08-28 17:57
DCloud_uniCloud_JSON
回复 2***@qq.com: 参考 uni-im,把 push 消息加到 task,等滚动结束再把滚动条设置为非0 然后再 push
2023-08-30 15:22
wzw60606
回复 DCloud_uniCloud_JSON: 用的scroll-view的模式,这个方法在安卓有效,实现无缝下拉加载历史数据,但是ios app中,增加数据之后都会把旧数据顶下去,请问如何解决这个问题
2023-09-28 10:11
wzw60606
回复 w***@163.com: scroll-anchoring这个属性好像在app端无效?
2023-09-28 10:11
DCloud_uniCloud_JSON
回复 w***@163.com: app 端有keep-scroll-position,参考 uni-im
2023-09-28 11:00
1***@qq.com
回复 DCloud_uniCloud_JSON: 安卓没效果呢 3.8.7版本
2023-12-14 15:14
DCloud_uniCloud_JSON
回复 1***@qq.com: 直接跑的示例项目,还是自己抄的没抄好
2023-12-14 16:01
1***@qq.com
回复 DCloud_uniCloud_JSON: keep-scroll-position这个属性在ios上不生效的
2023-12-29 22:36
帅先突破
有没有这个保持位置的单独的思路和代码
2024-03-01 11:27