我想设置ListView.builder的初始滚动位置,我希望列表从底部开始0.0
。
如果我在listView上设置reverse
,当然我可以获得所需的初始滚动位置,但我需要的是将最后一个子组件放在底部,这是一个聊天应用程序。
这是List builder,MessageItem()
是聊天消息。
ListView.builder(
shrinkWrap: true,
controller: _scrollController,
itemCount: snapshot.data.documents.length,
padding: EdgeInsets.all(10.0),
itemBuilder: (BuildContext context, int index) =>
MessageItem(
index: index,
document: snapshot.data.documents[index],
myId: myId));
这是当有人 发送
消息时我拥有的动画效果
_scrollController.animateTo(
_scrollController.position.maxScrollExtent,
duration: const Duration(milliseconds: 500),
curve: Curves.easeOut);
动画效果还可以。
我想要的是当用户进入聊天室时,列表滚动位置已经在底部。
initState()
中,但会抛出错误:I/flutter (15097): ScrollController not attached to any scroll views. I/flutter (15097): 'package:flutter/src/widgets/scroll_controller.dart': I/flutter (15097): Failed assertion: line 110 pos 12: '_positions.isNotEmpty'
我应该把它放在哪里,以便在开始时触发它? - Irving Armenta