RestorableValue<T> class Null safety

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> {
  @override
  Duration createDefaultValue() => Duration.zero;

  @override
  void didUpdateValue(Duration? oldValue) {
    if (oldValue == null || oldValue.inMicroseconds != value.inMicroseconds) {
      notifyListeners();
    }
  }

  @override
  Duration fromPrimitives(Object? data) {
    if (data != null) {
      return Duration(microseconds: data as int);
    }
    return Duration.zero;
  }

  @override
  Object toPrimitives() {
    return value.inMicroseconds;
  }
}

See also:

Inheritance
Implementers

Constructors

RestorableValue()

Properties

enabled bool
Whether the object currently returned by toPrimitives should be included in the restoration state.
read-only, inherited
hashCode int
The hash code for this object.
read-only, inherited
hasListeners bool
Whether any listeners are currently registered.
@protected, read-only, inherited
isRegistered bool
Whether this property is currently registered with a RestorationMixin.
@protected, read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
state State<StatefulWidget>
The State object that this property is registered with.
@protected, read-only, inherited
value ↔ T
The current value stored in this property.
read / write

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.
inherited
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).
inherited
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.
inherited
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.
@mustCallSuper, override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
inherited
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.
inherited
toPrimitives() Object?
Called by the RestorationMixin to retrieve the information that this property wants to store in the restoration data.
inherited
toString() String
A string representation of this object.
inherited

Operators

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