我想在渲染小部件后将Listview滚动到底部。尝试了以下代码,但在呈现Listview之前调用了它。
ScrollController _lvScrollCtrl = new ScrollController();
@override
void initState() {
getData();
loadListviewData();
WidgetsBinding.instance.addPostFrameCallback((_) {
_lvScrollCtrl.animateTo(_lvScrollCtrl.position.maxScrollExtent,
duration: const Duration(milliseconds: 500), curve: Curves.easeOut);
});
super.initState();
}
我还尝试将Listview的reverse属性设置为true。但这会将所有项目带到Expanded小部件的底部。我只希望普通的Listview向下滚动到末尾以显示Load上的最新更新。 :/
我将以下代码移到return语句之前的build函数中,并且它运行良好。刚刚实现的addPostFrameCallback回调仅在当前帧结束后才被调用一次。因此,我需要一次又一次地设置它以保持其调用状态。
WidgetsBinding.instance.addPostFrameCallback((_) {
_lvScrollCtrl.animateTo(_lvScrollCtrl.position.maxScrollExtent,
duration: const Duration(milliseconds: 500), curve: Curves.easeOut);
});