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