SliverReorderableList class Null safety

A sliver list that allows the user to interactively reorder the list items.

It is up to the application to wrap each child (or an internal part of the child) with a drag listener that will recognize the start of an item drag and then start the reorder by calling SliverReorderableListState.startItemDragReorder. This is most easily achieved by wrapping each child in a ReorderableDragStartListener or a ReorderableDelayedDragStartListener. These will take care of recognizing the start of a drag gesture and call the list state's start item drag method.

This widget's SliverReorderableListState can be used to manually start an item reorder, or cancel a current drag that's already underway. To refer to the SliverReorderableListState either provide a GlobalKey or use the static SliverReorderableList.of method from an item's build method.

See also:

  • ReorderableList, a regular widget list that allows the user to reorder its items.
  • ReorderableListView, a material design list that allows the user to reorder its items.


SliverReorderableList({Key? key, required IndexedWidgetBuilder itemBuilder, required int itemCount, required ReorderCallback onReorder, ReorderItemProxyDecorator? proxyDecorator})
Creates a sliver list that allows the user to interactively reorder its items. [...]


hashCode int
The hash code for this object. [...]
@nonVirtual, read-only, inherited
itemBuilder IndexedWidgetBuilder
Called, as needed, to build list item widgets. [...]
itemCount int
The number of items in the list. [...]
key Key?
Controls how one widget replaces another widget in the tree. [...]
final, inherited
onReorder ReorderCallback
A callback used by the list to report that a list item has been dragged to a new location in the list and the application should update the order of the items.
proxyDecorator ReorderItemProxyDecorator?
A callback that allows the app to add an animated decoration around an item when it is being dragged.
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited


createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree. [...]
createState() SliverReorderableListState
Creates the mutable state for this widget at a given location in the tree. [...]
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children. [...]
@protected, inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node. [...]
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep. [...]
toString({DiagnosticLevel minLevel:}) String
A string representation of this object. [...]
toStringDeep({String prefixLineOne: '', String? prefixOtherLines, DiagnosticLevel minLevel: DiagnosticLevel.debug}) String
Returns a string representation of this node and its descendants. [...]
toStringShallow({String joiner: ', ', DiagnosticLevel minLevel: DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object. [...]
toStringShort() String
A short, textual description of this widget.


operator ==(Object other) bool
The equality operator. [...]
@nonVirtual, inherited

Static Methods

maybeOf(BuildContext context) SliverReorderableListState?
The state from the closest instance of this class that encloses the given context. [...]
of(BuildContext context) SliverReorderableListState
The state from the closest instance of this class that encloses the given context. [...]