我想在Widget呈现后将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。但这会将所有项目带到展开的小部件的底部。我只想要一个普通的Listview向下滚动到最后,以显示最近加载的更新。:/
发布于 2020-05-31 05:51:49
我将下面的代码移到了return语句之前的build函数中,它工作得很好。刚刚实现的addPostFrameCallback回调只会在当前帧结束后调用一次。因此,我需要一次又一次地设置它,以保持呼叫。
WidgetsBinding.instance.addPostFrameCallback((_) {
_lvScrollCtrl.animateTo(_lvScrollCtrl.position.maxScrollExtent,
duration: const Duration(milliseconds: 500), curve: Curves.easeOut);
});https://stackoverflow.com/questions/62108896
复制相似问题