我正在使用onpressed()向下滚动到列表视图的底部, 但我想无需按下该按钮来实现该目标,
它必须在每次打开屏幕时自动滚动。 我试图将其放入initState() 它的不起作用,但是如果我按下按钮,它就会变
如何使其自动滚动?
工作代码:
floatingActionButton: new FloatingActionButton(child:
Icon(Icons.arrow_downward),onPressed:_hola,)
_hola(){
print("inti state started successfully");
controller1.animateTo(
controller1.position.maxScrollExtent,
duration: const Duration(milliseconds: 10),
curve: Curves.easeOut,);
}
非工作代码: //此代码成功打印,但未真正调用该函数
class HomeState extends State<MyNewMessages> {
@override
void initState()
{
super.initState();
print("hola is scrolling");
_hola;
}
);
}
答案 0 :(得分:2)
在构建ListView或添加项目(不确定其操作方式)时,请使用SchedulerBinding.instance.addPostFrameCallback
更改下一帧的滚动位置。
SchedulerBinding.instance.addPostFrameCallback((_) {
controller1.animateTo(
controller1.position.maxScrollExtent,
duration: const Duration(milliseconds: 10),
curve: Curves.easeOut,);
});
}