10

我正在使用 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,);
}

Non Working Code: //这段代码打印成功,但没有真正调用函数

class HomeState extends State<MyNewMessages> {
  @override
  void initState() 
{
 super.initState();
  print("hola is scrolling");
  _hola;
}
);
}

按下浮动按钮前 按下浮动按钮 按下浮动按钮之前 按下浮动按钮后

4

1 回答 1

19

在构建 ListView 或添加项目时(不确定你是如何做的),用于SchedulerBinding.instance.addPostFrameCallback更改下一帧的滚动位置。

SchedulerBinding.instance.addPostFrameCallback((_) {
  controller1.animateTo(
    controller1.position.maxScrollExtent,
    duration: const Duration(milliseconds: 10),
    curve: Curves.easeOut,);
  });
}
于 2018-06-27T18:15:27.437 回答