我需要滚动到屏幕初始打开位置的ListView
的末尾。我使用过this solution,但是当聊天足够大时会出现问题:_scrollController.jumpTo(_scrollController.position.maxScrollExtent)
只是没有跳到列表的末尾:它跳到末尾之前,所以我必须手动滚动几乎可以达到屏幕的高度。不过,当添加新条目时(我是说一个接一个)-_scrollController.animateTo(_scrollController.position.maxScrollExtent, duration: const Duration(milliseconds: 200), curve: Curves.linear)
可以正常工作(我的意思是,动画滚动与一项的“展开区域”配合良好)。
当前,我使用以下方法实例化ListView
:
ListView.builder(
controller: _scrollController,
itemCount: messages.length,
itemBuilder: (_, int index) =>
_buildMessageEntry(messages[index]))
我试图将构造函数调用更改为默认调用,但这并不能解决问题。
有没有一种方法可以可靠地滚动到列表的末尾?
PS:列表不是reverse: true
-最新消息应该在列表的底部,所以我不能仅将reverse
设置为true
并使用{{ 1}}。