nvue 聊天场景中使用 list cell在下拉加载历史消息时如何保持滚动位置?
下拉加载历史消息 将历史消息数据 unshift到list前 会导致滚动条跳到页面顶部 类似的需求很多 为什么官方不出一个解决办法?
下面是我这段时间来试过的所有相关办法
1: Weex cell组件的keep-scroll-position属性看上去可以完美的解决这个问题 但是很可惜uni-app并没有实现此属性
2:使用 dom.scrollToElement()跳回之前的位置 这种方法可以解决问题 但是体验极其差劲 页面会明显的闪烁
3:将list 和 cell 使用css翻转看起来可以完美解决这个问题 但是在某些场景下依然不合适
致辞曲线救国失败 放弃治疗 希望哪位大佬能够指点迷津
1***@qq.com (作者)
你说的方法不就是我写的第三条方法吗 这种解决方式乍看很完美 但是你将容器反转后虽然解决了下拉加载历史消息的问题 但是带来了一个新问题 那就是(接收新消息时如何保持滚动条位置?比如你在群聊里正在翻看历史消息 这时候来了新消息 你会发现消息在不停的往上滚动 这明显是不合理的)说白了这种方式也不过是把问题 从上方挪到了下方而已
2022-06-13 16:53
1***@qq.com (作者)
有没有什么方法能根本的解决问题 是不是因为官方自认为存在上述替代方案 从而降低了这个问题的修改级别 这个问题在社区里已经被反复反馈了很多次 到现在依然没什么进展
2022-06-13 17:00
西梁
回复 1***@qq.com: 有新消息,先别插入到list里,在底部浮窗提醒用户,让他点击,然后滚动到底部再插入
2022-06-13 17:10
DCloud_uniCloud_JSON
回复 西梁: +1
2022-06-13 20:13
5***@qq.com
翻转之后,如果内容少,就显示在底部了,上面空白
2022-06-14 19:18
1***@qq.com (作者)
回复 西梁: 这。。。 这虽然从设计上避免了这个问题 但是如果可以妥协到这种程度的话 我为什么不选择第二种解决方案 再尽可能的去优化呐
2022-06-14 20:56
1***@qq.com (作者)
回复 5***@qq.com: 下面的解决方案链接里 指向的插件说是解决了这个问题 可以参考一下
2022-06-14 20:57
5***@qq.com
回复 1***@qq.com: 你这个方案非常好,我已经开始用了
2022-06-15 12:54