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

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

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.
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.
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.
inherited
toString() → String
A string representation of this object.
inherited

Operators

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