Lifecycle<T extends StatefulWidget> mixin
具备生命周期感知的 StatefulWidget
1.在 StatefulWidget 中,继承/混入 此类,使得组件具备生命周期功能
2.在任何你需要的地方构造一个生命周期观察者 LifecycleObserver
3.将观察者绑定到当前对象,即可实现观察者监听组件的生命周期
///某个需要感知生命周期的观察者
class AModel extends LifecycleObserver {
/// 需要依据生命周期释放的资源
ScrollController controller = ScrollController();
@override
void onLifecycleChanged(LifecycleOwner owner, LifecycleState state) {
if (state == LifecycleState.onDestroy) {
///在组件销毁时释放资源
controller.dispose();
}
}
}
///在 StatefulWidget 中混入 Lifecycle
class _MyPageState extends State<MyPage> with Lifecycle {
@override
void initState() {
super.initState();
///绑定观察者
getLifecycle().addObserver(AModel());
}
@override
Widget build(BuildContext context) {
return Container();
}
}
- Superclass Constraints
- State<
T>
- State<
- Implemented types
Properties
- context → BuildContext
-
The location in the tree where this widget builds.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- mounted → bool
-
Whether this State object is currently in a tree.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- widget → T
-
The current configuration.
no setterinherited
Methods
-
activate(
) → void -
Called when this object is reinserted into the tree after having been
removed via deactivate.
inherited
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
inherited
-
deactivate(
) → void -
Called when this object is removed from the tree.
override
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
didChangeDependencies(
) → void -
Called when a dependency of this State object changes.
override
-
didUpdateWidget(
covariant T oldWidget) → void -
Called whenever the widget configuration changes.
inherited
-
dispose(
) → void -
Called when this object is removed from the tree permanently.
override
-
getLifecycle(
) → LifecycleObservable -
获取被观察者,用来管理观察者
override
-
getStateful(
) → State< StatefulWidget> -
获取 StatefulWidget 的 State
override
-
initState(
) → void -
Called when this object is inserted into the tree.
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
reassemble(
) → void -
Called whenever the application is reassembled during debugging, for
example during hot reload.
inherited
-
setState(
VoidCallback fn) → void -
Notify the framework that the internal state of this object has changed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringShort(
) → String -
A brief description of this object, usually just the runtimeType and the
hashCode.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited