最佳答案
我的屏幕上有一个 listView。我在它上面装了一个控制器。我能够调用我的端点,接收响应,解析它并插入到行中。ListView 应该自动滚动。是的,但不是以完美的方式。我总是落在后面。这是我的暗号:
@override
Widget build(BuildContext context) {
// Scroll to the most recent item
if (equationList.length > 0) {
_toEnd();
}
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
),
body: EquList(equationList, _scrollController),
floatingActionButton: new FloatingActionButton(
onPressed: onFabClick,
tooltip: 'Fetch Post',
child: new Icon(isLoading ? Icons.pause : Icons.play_arrow),
),
);
}
void _toEnd() {
_scrollController.animateTo(
_scrollController.position.maxScrollExtent,
duration: const Duration(milliseconds: 250),
curve: Curves.ease,
);
}
问题是,在最后一项插入到列表之前,我正在调用 _toEnd()
函数。因此,我正在寻找一个回调(如果有的话) ,告诉我 build()
完成。然后调用 _toEnd()
函数。
在这种情况下,最佳实践是什么?