Flutter 颤振中的控制器如何在不调用setstate的情况下重建小部件

Flutter 颤振中的控制器如何在不调用setstate的情况下重建小部件,flutter,Flutter,一些小部件(如ListView)接受控制器 但是我不知道为什么控制器可以通过调用controller.animateTo()来更新滚动位置,而不调用setState 我有点奇怪控制器到底是什么? (我知道控制器可用于自定义小部件的行为) 控制器内部发生了什么?它们没有 控制器不会使小部件重新生成。它们只提供一种监听更改的方式(通常通过ChangeNotifier/ValueNotifier) 然后是另一个使用此侦听机制调用setState的小部件 一个例子是AnimatedBuilder。它是一

一些小部件(如ListView)接受控制器

但是我不知道为什么控制器可以通过调用
controller.animateTo()
来更新滚动位置,而不调用
setState

我有点奇怪控制器到底是什么? (我知道控制器可用于自定义小部件的行为)

控制器内部发生了什么?它们没有

控制器不会使小部件重新生成。它们只提供一种监听更改的方式(通常通过
ChangeNotifier
/
ValueNotifier

然后是另一个使用此侦听机制调用setState的小部件

一个例子是
AnimatedBuilder
。它是一个有状态的小部件,当
动画
发出一些通知时调用
setState