RestorableViewModelHolder<T extends Restorable> class
Holder class for restorable view models, use with the flutter restoration framework (See RestorationMixin). The contained viewModel can change at any time, that's why it is usually wrapped in a builder that listens for changes. Eg: AnimatedBuilder.
Example:
@override
void initState() {
super.initState();
_viewModelHolder = RestorableViewModelHolder(
create: () => GetIt.I.get(),
init: (vm) => vm.init(...),
whenCreated: (vm) => ...,
);
}
@override
Widget build(BuildContext context) {
return AnimatedBuilder(
animation: _viewModelHolder,
builder: (context, _) => ProviderWidget<ContainedViewModel>.value(
value: _viewModelHolder.viewModel,
childBuilderWithViewModel: (context, viewModel, theme, localization) => ...,
),
);
}
@override
String? get restorationId => 'some_unique_id';
@override
void restoreState(RestorationBucket? oldBucket, bool initialRestore) {
registerForRestoration(_viewModelHolder, 'viewmodel');
}
- Inheritance
-
- Object
- ChangeNotifier
- RestorableProperty<
T> - RestorableListenable<
T> - RestorableChangeNotifier<
T> - RestorableViewModelHolder
- Mixed in types
Constructors
- RestorableViewModelHolder({required T create(), void init(T) = _noOp, void whenCreated(T) = _noOp})
Properties
- create → T Function()
-
Creator function for the restorable view model
final
- enabled → bool
-
Whether the object currently returned by toPrimitives should be included
in the restoration state.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
Whether any listeners are currently registered.
no setterinherited
- init → void Function(T)
-
The init function is called AFTER the state has been restored
final
- isRegistered → bool
-
Whether this property is currently registered with a RestorationMixin.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
state
→ State<
StatefulWidget> -
The State object that this property is registered with.
no setterinherited
- value → T
-
The Listenable stored in this property.
no setterinherited
- viewModel → T
-
no setter
- whenCreated → void Function(T)
-
This function is called BEFORE init and BEFORE state has been restored
final
Methods
-
addListener(
VoidCallback listener) → void -
Register a closure to be called when the object changes.
inherited
-
createDefaultValue(
) → T -
Called by the RestorationMixin if no restoration data is available to
restore the value of the property from to obtain the default value for the
property.
override
-
didChangeAccessibilityFeatures(
) → void -
Called when the system changes the set of currently active accessibility
features.
inherited
-
didChangeAppLifecycleState(
AppLifecycleState state) → void -
Called when the system puts the app in the background or returns
the app to the foreground.
override
-
didChangeLocales(
List< Locale> ? locales) → void -
Called when the system tells the app that the user's locale has
changed. For example, if the user changes the system language
settings.
inherited
-
didChangeMetrics(
) → void -
Called when the application's dimensions change. For example,
when a phone is rotated.
inherited
-
didChangePlatformBrightness(
) → void -
Called when the platform brightness changes.
inherited
-
didChangeTextScaleFactor(
) → void -
Called when the platform's text scale factor changes.
inherited
-
didHaveMemoryPressure(
) → void -
Called when the system is running low on memory.
inherited
-
didPopRoute(
) → Future< bool> -
Called when the system tells the app to pop the current route, such as
after a system back button press or back gesture.
inherited
-
didPushRoute(
String route) → Future< bool> -
Called when the host tells the application to push a new route onto the
navigator.
inherited
-
didPushRouteInformation(
RouteInformation routeInformation) → Future< bool> -
Called when the host tells the application to push a new
RouteInformation and a restoration state onto the router.
inherited
-
didRequestAppExit(
) → Future< AppExitResponse> -
Called when a request is received from the system to exit the application.
inherited
-
dispose(
) → void -
Discards any resources used by the object. After this is called, the
object is not in a usable state and should be discarded (calls to
addListener will throw after the object is disposed).
override
-
fromPrimitives(
Object? data) → T -
Called by the RestorationMixin to convert the
data
previously retrieved from toPrimitives back into an object of typeT
that this property should wrap.override -
initWithValue(
T value) → void -
Called by the RestorationMixin with the
value
returned by either createDefaultValue or fromPrimitives to set the value that this property currently wraps.override -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyListeners(
) → void -
Call all the registered listeners.
inherited
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that are
notified when the object changes.
inherited
-
toPrimitives(
) → Object? -
Called by the RestorationMixin to retrieve the information that this
property wants to store in the restoration data.
override
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited