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
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