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:
- RestorableProperty, which is the super class of this class.
- RestorationMixin, to which a RestorableValue needs to be registered in order to work.
- RestorationManager, which provides an overview of how state restoration works in Flutter.
- Inheritance
-
- Object
- ChangeNotifier
- RestorableProperty<
T> - RestorableValue
- Implementers
Constructors
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. 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 typeT
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