scrollview组件顶部追加新数据时滚动条会直接跳到顶部
发布于 5 年前 作者 jielai 7573 次浏览 来自 问答

scrollview组件顶部追加新数据时滚动条会直接跳到顶部,而如果在底部追加新数据滚动条不会跳变。想实现类似微信聊天页面向下滑动拉取历史消息,但拉取完历史消息后不要直接跳转到顶部。目前小程序的scrollView会直接跳转到顶部了。

https://developers.weixin.qq.com/s/awlzC9mW7Q5l

5 回复

同样有这个问题,每次视图更新都得setData,然后就跑到最顶部了,用scroll-into-view会先滚动到顶部再滚动都指定位置,体验贼差。这个bug官方能修复么?求解答,在线等~~

微信开发工具上是可以的,但是手机就没有效果了,请问怎么解决的

同样遇到该问题

1、第一次使用 wx.createSelectorQuery();获取加载前第一个消息view的top值,然后 setData({ scrollTop: _scrollTop}),scroll-view会闪烁一次

2、第二次使用 scroll-view 的 scroll-into-view 的属性,但是任然有一次闪烁,体验很差

建议官方去查看 antd-mobile 中的 ListView,同样的在顶部插入新DOM,滚动条会保持在原先的位置上,并且页面不会闪烁,用户无感,体验很好

望官方快快解决该问题

scrollview添加srollIntoView属性:

<scroll-view scrollY bindscrolltoupper="loadChatHistory" scrollIntoView="{{toview}}">

每次加载完新数据都更新一下这个值

that.setData({
      chat_content: chat_content,
      toview: "m" + (chat_content.length - 1)
});

我也遇到同样的问题,scrollview自动滚动到顶部,这是个bug吧

回到顶部