我尝试在Flutter上构建聊天示例,但遇到了问题,如何在填充新数据时使FirebaseAnimatedFlutter自动滚动?
例如:当我为我的朋友提交新的聊天消息时,我可以从我的Angular 调用这个方法来自动滚动:
Timer(Duration(milliseconds: 100), () {
scrollController.animateTo(
scrollController.position.maxScrollExtent,
duration: const Duration(milliseconds: 100),
curve: Curves.easeOut);
});
但是在我的朋友那里,他仍然需要手动滚动到最后才能看到新消息
那么,当我们接收到新数据时,有什么方法可以检测并自动滚动到FirebaseAnimatedList的结尾吗?
谢谢
3条答案
按热度按时间qvsjd97n1#
我看不到所有的代码,但是有一个技巧可以避免添加额外的代码,它包括反转消息列表中的数据,并将
ListView
的reverse
属性设置为true
,这将使消息随着新消息的到来而上移。反转原始列表,将
ListView
的reverse
属性设置为true
,当向List添加消息时,使用messages.insert(0, newMessage)
将其添加到顶部(由于反转,现在是底部),而不是messages.add
。cld4siwp2#
感谢João Soares有用回答,我已经通过2步解决了这个问题
1.通过使用FirebaseAnimatedList的“排序”属性从Firebase反转数据
1.在FirebaseAnimatedList中将“reverse”属性设置为“true”并像一个魅力一样工作
qyswt5oh3#
只要用灵活的小部件 Package 你的FirebaseAnimatedList就行了,这对我很有效。