Key class abstract

A Key is an identifier for Widgets, Elements and SemanticsNodes.

A new widget will only be used to update an existing element if its key is the same as the key of the current widget associated with the element.

Typically, if no key is provided, the default value is null, meaning the widget is considered unkeyed. In this case, Flutter matches widgets based on their Widget.runtimeType and position in the tree during rebuilds.

Keys must be unique amongst the Elements with the same parent.

Subclasses of Key should either subclass LocalKey or GlobalKey.

A common mistake is to rebuild the widget tree in such a way that Flutter attaches the incorrect State object to an unkeyed StatefulWidget. This can often be solved by using an appropriate Key on the StatefulWidget.

See ValueKey, which explains how that class can be used as a solution to a common case of this problem.

See also:

  • Widget.key, which discusses how widgets use keys.
Implementers
Annotations

Constructors

Key(String value)
Construct a ValueKey<String> with the given String.
const
factory
Key.empty()
Default constructor, used by subclasses.
const

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

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