ReorderableBuilder<T> class

Enables animated drag and drop behaviour for built widgets in builder.

Be sure not to replace, add or remove your children while you are dragging because this can lead to an unexpected behavior.

The generic type

Inheritance

Constructors

ReorderableBuilder({required List<Widget>? children, required DraggableBuilder? builder, ScrollController? scrollController, OnReorderCallback<T>? onReorder, List<int> lockedIndices = _defaultLockedIndices, List<int> nonDraggableIndices = _defaultNonDraggableIndices, bool enableLongPress = _defaultEnableLongPress, Duration longPressDelay = _defaultLongPressDelay, bool enableDraggable = _defaultEnableDraggable, double automaticScrollExtent = _defaultAutomaticScrollExtent, bool enableScrollingWhileDragging = _defaultEnableScrollingWhileDragging, Duration fadeInDuration = _defaultFadeInDuration, Duration releasedChildDuration = _defaultReleasedChildDuration, Duration positionDuration = _defaultPositionDuration, double feedbackScaleFactor = _defaultFeedbackScaleFactor, bool reverse = _defaultReverse, BoxDecoration? dragChildBoxDecoration, ItemCallback? onDragStarted, ItemCallback? onDragEnd, ItemCallback? onUpdatedDraggedChild, Key? key})
const
ReorderableBuilder.builder({required Widget childBuilder(Widget itemBuilder(Widget child, int index))?, ScrollController? scrollController, OnReorderCallback<T>? onReorder, List<int> lockedIndices = _defaultLockedIndices, List<int> nonDraggableIndices = _defaultNonDraggableIndices, bool enableLongPress = _defaultEnableLongPress, Duration longPressDelay = _defaultLongPressDelay, bool enableDraggable = _defaultEnableDraggable, double automaticScrollExtent = _defaultAutomaticScrollExtent, bool enableScrollingWhileDragging = _defaultEnableScrollingWhileDragging, Duration fadeInDuration = _defaultFadeInDuration, Duration releasedChildDuration = _defaultReleasedChildDuration, Duration positionDuration = _defaultPositionDuration, double feedbackScaleFactor = _defaultFeedbackScaleFactor, bool reverse = _defaultReverse, BoxDecoration? dragChildBoxDecoration, ItemCallback? onDragStarted, ItemCallback? onDragEnd, ItemCallback? onUpdatedDraggedChild, Key? key})
const

Properties

automaticScrollExtent double
Defines the height of the top or bottom before the dragged child indicates a scrolling.
final
builder DraggableBuilder?
It's required to use ReorderableBuilder to obtain updated children.
final
childBuilder Widget Function(Widget itemBuilder(Widget child, int index))?
Enable support for GridView.builder using this function.
final
children List<Widget>?
Defines the children that will be displayed for drag and drop.
final
dragChildBoxDecoration BoxDecoration?
BoxDecoration for the child that is dragged around.
final
enableDraggable bool
When disabling draggable, the drag and drop behavior is not working.
final
enableLongPress bool
The drag of a child will be started with a long press.
final
enableScrollingWhileDragging bool
Enables the functionality to scroll while dragging a child to the top or bottom.
final
fadeInDuration Duration
Duration for the fade in animation when a new child was added.
final
feedbackScaleFactor double
The scale factor applied to the feedback widget during a drag operation.
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
lockedIndices List<int>
Specify indices for children that should not be draggable or movable.
final
longPressDelay Duration
Specify the Duration for the pressed child before starting the dragging.
final
nonDraggableIndices List<int>
Specify indices for children that are not draggable.
final
onDragEnd ItemCallback?
Callback when the dragged child was released with the index.
final
onDragStarted ItemCallback?
Callback when dragging starts with the index where it started.
final
onReorder OnReorderCallback<T>?
After releasing the dragged child, onReorder is called.
final
onUpdatedDraggedChild ItemCallback?
Called when the dragged child has updated his position while dragging.
final
positionDuration Duration
Duration for the position change of a child.
final
releasedChildDuration Duration
Duration for the position animation when a dragged child was released.
final
reverse bool
Manages the case where the order of children is reversed.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scrollController ScrollController?
ScrollController to get the current scroll position. Important for calculations!
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<ReorderableBuilder<T>>
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}) 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