SliverReorderableList class
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.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- SliverReorderableList
Constructors
- SliverReorderableList({Key? key, required IndexedWidgetBuilder itemBuilder, ChildIndexGetter? findChildIndexCallback, required int itemCount, required ReorderCallback onReorder, void onReorderStart(int)?, void onReorderEnd(int)?, double? itemExtent, ItemExtentBuilder? itemExtentBuilder, Widget? prototypeItem, ReorderItemProxyDecorator? proxyDecorator, double? autoScrollerVelocityScalar})
-
Creates a sliver list that allows the user to interactively reorder its
items.
const
Properties
- autoScrollerVelocityScalar → double
-
The velocity scalar per pixel over scroll.
final
- findChildIndexCallback → ChildIndexGetter?
-
Called to find the new index of a child based on its key in case of reordering.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- itemBuilder → IndexedWidgetBuilder
-
Called, as needed, to build list item widgets.
final
- itemCount → int
-
The number of items in the list.
final
- itemExtent → double?
-
If non-null, forces the children to have the given extent in the scroll
direction.
final
- itemExtentBuilder → ItemExtentBuilder?
-
If non-null, forces the children to have the corresponding extent returned
by the builder.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- 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.
final
- onReorderEnd → void Function(int)?
-
A callback that is called when the dragged item is dropped.
final
- onReorderStart → void Function(int)?
-
A callback that is called when an item drag has started.
final
- prototypeItem → Widget?
-
If non-null, forces the children to have the same extent as the given
widget in the scroll direction.
final
- proxyDecorator → ReorderItemProxyDecorator?
-
A callback that allows the app to add an animated decoration around
an item when it is being dragged.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → SliverReorderableListState -
Creates the mutable state for this widget at a given location in the tree.
override
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
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.