Flutter 无状态小部件中的颤振列表视图

Flutter 无状态小部件中的颤振列表视图,flutter,dart,Flutter,Dart,据我所知,在无状态widget中,我们不能调用任何类似setState的东西来重建widget树等等 但是当我们滚动一个列表视图时,,位置和。。。会改变的。 但正如我们在无状态小部件中所做的那样,我不知道为什么可以更改STL的状态,因为ListView有自己的偏移状态,它可以更改并反映在用户界面中。ListView是一个有状态小部件。 仅仅因为您将它包装在无状态小部件中,并不意味着它也会变成无状态 这就是全部的魔力,你可以有许多有状态和无状态的小部件包装在有状态和无状态的小部件中…不,我没有在我

据我所知,在
无状态widget
中,我们不能调用任何类似
setState
的东西来重建widget树等等

但是当我们滚动一个
列表视图时,
,位置和。。。会改变的。
但正如我们在
无状态小部件中所做的那样,我不知道为什么可以更改
STL
的状态,因为
ListView
有自己的偏移状态,它可以更改并反映在用户界面中。

ListView是一个有状态小部件。 仅仅因为您将它包装在无状态小部件中,并不意味着它也会变成无状态


这就是全部的魔力,你可以有许多有状态和无状态的小部件包装在有状态和无状态的小部件中…

不,我没有在我的例子中使用任何
STF
,但我不知道为什么我们可以滚动到屏幕上,因为我只使用
STL
小部件。感谢
ListView
也是一个具有自己类和所有内容的小部件,其中许多类都实现为
StatefulWidget
,因此它更新自己的状态没有问题。您可以滚动,因为ListView使用ScrollOffset和具有设置高度和宽度的预定义视口。ListView、滚动条和GridView将可用视口用于未来的构建器对象,即只有屏幕上的对象保持状态,而非屏幕上的对象如果在某个时间处于屏幕上或尚未创建,则会被销毁。这些东西对STL或STF小部件没有任何影响。听起来它必须是有状态的,但继承层次结构说它是无状态的:。一定是魔法;-)