ChangeNotifier class Null safety

A class that can be extended or mixed in that provides a change notification API using VoidCallback for notifications.

It is O(1) for adding listeners and O(N) for removing listeners and dispatching notifications (where N is the number of listeners).

Improve rebuilds performance using AnimatedBuilder

Despite the name, AnimatedBuilder is not limited to Animations. Any subtype of Listenable (such as ChangeNotifier and ValueNotifier) can be used with an AnimatedBuilder to rebuild only certain parts of a widget when the Listenable notifies its listeners. This technique is a performance improvement that allows rebuilding only specific widgets leaving others untouched.

The following example implements a simple counter that utilizes an AnimatedBuilder to limit rebuilds to only the Text widget. The current count is stored in a ValueNotifier, which rebuilds the AnimatedBuilder's contents when its value is changed.

To create a local project with this code sample, run:
flutter create --sample=cupertino.AnimatedBuilder.2 mysample

See also:

Implemented types




hashCode int
The hash code for this object.
hasListeners bool
Whether any listeners are currently registered.
runtimeType Type
A representation of the runtime type of the object.


addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
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).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent 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.
toString() String
A string representation of this object.


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

Static Methods

debugAssertNotDisposed(ChangeNotifier notifier) bool
Used by subclasses to assert that the ChangeNotifier has not yet been disposed.