RestorableValue<T> class abstract

A RestorableProperty that makes the wrapped value accessible to the owning State object via the value getter and setter.

Whenever a new value is set, didUpdateValue is called. Subclasses should call notifyListeners from this method if the new value changes what toPrimitives returns.

Using a RestorableValue

A StatefulWidget that has a restorable int property.

To create a local project with this code sample, run:
flutter create --sample=widgets.RestorableValue.1 mysample

Creating a subclass

This example shows how to create a new RestorableValue subclass, in this case for the Duration class.
class RestorableDuration extends RestorableValue<Duration> {
  Duration createDefaultValue() =>;

  void didUpdateValue(Duration? oldValue) {
    if (oldValue == null || oldValue.inMicroseconds != value.inMicroseconds) {

  Duration fromPrimitives(Object? data) {
    if (data != null) {
      return Duration(microseconds: data as int);

  Object toPrimitives() {
    return value.inMicroseconds;

See also:





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
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 current value stored in this property.
getter/setter pair


addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
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.
didUpdateValue(T? oldValue) → void
Called whenever a new value is assigned to value.
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).
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.
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.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
notifyListeners() → void
Call all the registered listeners.
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
toPrimitives() Object?
Called by the RestorationMixin to retrieve the information that this property wants to store in the restoration data.
toString() String
A string representation of this object.


operator ==(Object other) bool
The equality operator.