flutter是否具有类似于Activity.resume()
的方法,该方法可以告诉开发人员用户已回到 Activity 中。
当我从Page-B中的Internet上选择数据并返回到Page-A时,如何让Page-A知道已准备好数据。
最佳答案
createState()
:当框架被指示构建StatefulWidget时,它立即调用
createState()
mounted
为true:当
createState
创建您的状态类时,会将buildContext
分配给该状态。 buildContext
过于简化,即在此小部件所在的小部件树中的位置。这是更长的解释。所有小部件都具有
bool this.mounted
属性。当分配了buildContext
时,它变为true。卸载窗口小部件时调用setState
是错误的。initState()
:这是在创建窗口小部件时(当然在类构造函数之后)调用的第一个方法。
initState
仅被调用一次。它必须调用super.initState()
。didChangeDependencies()
:第一次构建窗口小部件后,在
initState
之后立即调用此方法。build()
:这种方法经常被调用。它是必需的,并且必须返回一个Widget。
didUpdateWidget(Widget oldWidget)
:如果父窗口小部件发生更改并且必须重建此窗口小部件(因为需要为其提供不同的数据),但是正在使用相同的
runtimeType
对其进行重建,则将调用此方法。这是因为Flutter正在重用长期存在的状态。在这种情况下,您可能想要再次初始化一些数据,就像在
initState
中一样。setState()
:通常从框架本身和开发人员中调用此方法。它用于通知框架数据已更改
deactivate()
:当从树中删除State时,将调用Deactivate,但是可以在当前帧更改完成之前将其重新插入。之所以存在此方法,是因为状态对象可以从树中的一个点移动到另一点。
dispose()
:当State对象被移除时,
dispose()
被调用,这是永久的。您应该在此方法退订并取消所有动画,流等。mounted
为假:状态对象永远无法重新挂载,并且在调用
setState
时引发错误。