ArcaneGrid<E extends Object> class

A GridView that enables users to interactively reorder items through dragging, with animated insertion and removal of items.

enterTransition: [FadeIn(), ScaleIn()],

Effects are always run in parallel (ie. the fade and scale effects in the example above would be run simultaneously), but you can apply delays to offset them or run them in sequence.

The onReorder parameter is required and will be called when a child widget is dragged to a new position.

All list items must have a key.

While a drag is underway, the widget returned by the AnimatedReorderableListView.proxyDecorator callback serves as a "proxy" (a substitute) for the item in the list. The proxy is created with the original list item as its child.

Inheritance
Available extensions

Constructors

ArcaneGrid({Key? key, required List<E> items, required ItemBuilder<Widget, E> itemBuilder, required SliverGridDelegate sliverGridDelegate, ReorderCallback? onReorder, List<AnimationEffect>? enterTransition, List<AnimationEffect>? exitTransition, Duration? insertDuration, Duration? removeDuration, void onReorderStart(int)?, void onReorderEnd(int)?, ReorderItemProxyDecorator? proxyDecorator, EdgeInsetsGeometry? padding, Axis scrollDirection = Axis.vertical, bool longPressDraggable = true, AnimatedWidgetBuilder<Widget, dynamic>? insertItemBuilder, AnimatedWidgetBuilder<Widget, dynamic>? removeItemBuilder, required bool isSameItem(E a, E b), Duration dragStartDelay = const Duration(milliseconds: 500), List<E> nonDraggableItems = const [], List<E> lockedItems = const [], bool enableSwap = true})
Creates a ArcaneGrid that enables users to interactively reorder items through dragging, with animated insertion and removal of items.
const

Properties

asSliver Widget

Available on Widget, provided by the XWidgetArcane extension

no setter
ast Widget

Available on Widget, provided by the XAST extension

no setter
blurIn Widget

Available on Widget, provided by the XWidgetEffect extension

no setter
centered Widget

Available on Widget, provided by the XWidget extension

no setter
dragStartDelay Duration
The amount of time to wait before starting the drag operation.
final
enableSwap bool
Whether to enable swap animation when changing the order of the items.
final
enterTransition List<AnimationEffect>?
A list of AnimationEffect used for the appearing animation when an item is added to the list.
final
exitTransition List<AnimationEffect>?
A list of AnimationEffect used for the disappearing animation when an item was removed from the list.
final
expand Widget

Available on Widget, provided by the XWidget extension

no setter
flexible Widget

Available on Widget, provided by the XWidget extension

no setter
hashCode int
The hash code for this object.
no setterinherited
ih Widget

Available on Widget, provided by the XWidgetArcane extension

no setter
insertDuration Duration?
The duration of the animation when an item is inserted into the list.
final
insertItemBuilder AnimatedWidgetBuilder<Widget, dynamic>?
A custom builder that is for adding items with animations.
final
intrinsicHeight Widget

Available on Widget, provided by the XWidget extension

no setter
intrinsicSize Widget

Available on Widget, provided by the XWidget extension

no setter
intrinsicWidth Widget

Available on Widget, provided by the XWidget extension

no setter
isSameItem bool Function(E a, E b)
A callback function to determine if two items in the list are considered the same.
final
itemBuilder ItemBuilder<Widget, E>
Called, as needed, to build list item widgets.
final
items List<E>
The current list of items that thisArcaneGrid should represent.
final
iw Widget

Available on Widget, provided by the XWidgetArcane extension

no setter
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
lockedItems List<E>
A list of items that are locked and can't be reordered.
final
longPressDraggable bool
Set dragStartDelay to Duration.zero to start the drag operation immediately.
final
nonDraggableItems List<E>
A list of items that are not draggable.
final
onReorder ReorderCallback?
A callback used by ArcaneGrid to report that a list item has moved to a new position in the list.
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
padding EdgeInsetsGeometry?
The amount of space by which to inset the list contents.
final
proxyDecorator ReorderItemProxyDecorator?
A callback that allows the app to add an animated decoration around an item when it is being dragged.
final
removeDuration Duration?
The duration of the animation when an item is removed from the list.
final
removeItemBuilder AnimatedWidgetBuilder<Widget, dynamic>?
A custom builder that is for removing items with animations.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
safeArea Widget

Available on Widget, provided by the XWidget extension

no setter
scrollable Widget

Available on Widget, provided by the XWidget extension

no setter
scrollableHorizontal Widget

Available on Widget, provided by the XWidget extension

no setter
scrollDirection Axis
The axis along which the scroll view scrolls.
final
sliverGridDelegate SliverGridDelegate
Controls the layout of tiles in a grid. Given the current constraints on the grid, a SliverGridDelegate computes the layout for the tiles in the grid. The tiles can be placed arbitrarily, but it is more efficient to place tiles in roughly in order by scroll offset because grids reify a contiguous sequence of children.
final

Methods

animate({Key? key, List<Effect>? effects, AnimateCallback? onInit, AnimateCallback? onPlay, AnimateCallback? onComplete, bool? autoPlay, Duration? delay, AnimationController? controller, Adapter? adapter, double? target, double? value}) Animate

Available on Widget, provided by the AnimateWidgetExtensions extension

Wraps the target Widget in an Animate instance, and returns the instance for chaining calls. Ex. myWidget.animate() is equivalent to Animate(child: myWidget).
asSkeleton({bool enabled = true, bool leaf = false, Widget? replacement, bool unite = false, AsyncSnapshot? snapshot}) Widget

Available on Widget, provided by the SkeletonExtension extension

asSkeletonSliver({bool enabled = true}) Widget

Available on Widget, provided by the SkeletonExtension extension

base() Widget

Available on Widget, provided by the TextExtension extension

black() Widget

Available on Widget, provided by the TextExtension extension

blockQuote() Widget

Available on Widget, provided by the TextExtension extension

bold() Widget

Available on Widget, provided by the TextExtension extension

center({Key? key}) Widget

Available on Widget, provided by the WidgetExtension extension

clip({Clip clipBehavior = Clip.hardEdge}) Widget

Available on Widget, provided by the WidgetExtension extension

clipOval({Clip clipBehavior = Clip.antiAlias}) Widget

Available on Widget, provided by the WidgetExtension extension

clipPath({Clip clipBehavior = Clip.antiAlias, required CustomClipper<Path> clipper}) Widget

Available on Widget, provided by the WidgetExtension extension

clipRRect({BorderRadiusGeometry borderRadius = BorderRadius.zero, Clip clipBehavior = Clip.antiAlias}) Widget

Available on Widget, provided by the WidgetExtension extension

constrained({double? minWidth, double? maxWidth, double? minHeight, double? maxHeight}) Widget

Available on Widget, provided by the WidgetExtension extension

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<ArcaneGrid<E>>
Creates the mutable state for this widget at a given location in the tree.
override
debugContainer([Color color = Colors.red]) Widget

Available on Widget, provided by the DebugContainer extension

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
ellipsis() Widget

Available on Widget, provided by the TextExtension extension

excludeSkeleton({bool exclude = true}) Widget

Available on Widget, provided by the SkeletonExtension extension

expanded({int flex = 1}) Widget

Available on Widget, provided by the WidgetExtension extension

extraBold() Widget

Available on Widget, provided by the TextExtension extension

extraLight() Widget

Available on Widget, provided by the TextExtension extension

foreground() Widget

Available on Widget, provided by the TextExtension extension

h1() Widget

Available on Widget, provided by the TextExtension extension

h2() Widget

Available on Widget, provided by the TextExtension extension

h3() Widget

Available on Widget, provided by the TextExtension extension

h4() Widget

Available on Widget, provided by the TextExtension extension

iconDestructiveForeground() Widget

Available on Widget, provided by the IconExtension extension

iconLarge() Widget

Available on Widget, provided by the IconExtension extension

iconMedium() Widget

Available on Widget, provided by the IconExtension extension

iconMutedForeground() Widget

Available on Widget, provided by the IconExtension extension

iconPrimary() Widget

Available on Widget, provided by the IconExtension extension

iconPrimaryForeground() Widget

Available on Widget, provided by the IconExtension extension

iconSecondary() Widget

Available on Widget, provided by the IconExtension extension

iconSecondaryForeground() Widget

Available on Widget, provided by the IconExtension extension

iconSmall() Widget

Available on Widget, provided by the IconExtension extension

iconX2Large() Widget

Available on Widget, provided by the IconExtension extension

iconX2Small() Widget

Available on Widget, provided by the IconExtension extension

iconX3Large() Widget

Available on Widget, provided by the IconExtension extension

iconX3Small() Widget

Available on Widget, provided by the IconExtension extension

iconX4Large() Widget

Available on Widget, provided by the IconExtension extension

iconX4Small() Widget

Available on Widget, provided by the IconExtension extension

iconXLarge() Widget

Available on Widget, provided by the IconExtension extension

iconXSmall() Widget

Available on Widget, provided by the IconExtension extension

ignoreSkeleton() Widget

Available on Widget, provided by the SkeletonExtension extension

inlineCode() Widget

Available on Widget, provided by the TextExtension extension

intrinsic({double? stepWidth, double? stepHeight}) Widget

Available on Widget, provided by the WidgetExtension extension

intrinsicHeight() Widget

Available on Widget, provided by the WidgetExtension extension

intrinsicWidth({double? stepWidth, double? stepHeight}) Widget

Available on Widget, provided by the WidgetExtension extension

isSliver(BuildContext context) bool

Available on Widget, provided by the XSliverWidget extension

italic() Widget

Available on Widget, provided by the TextExtension extension

large() Widget

Available on Widget, provided by the TextExtension extension

lead() Widget

Available on Widget, provided by the TextExtension extension

li() Widget

Available on Widget, provided by the TextExtension extension

light() Widget

Available on Widget, provided by the TextExtension extension

medium() Widget

Available on Widget, provided by the TextExtension extension

mono() Widget

Available on Widget, provided by the TextExtension extension

muted() Widget

Available on Widget, provided by the TextExtension extension

normal() Widget

Available on Widget, provided by the TextExtension extension

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onDoublePressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

onHover(void action(bool hovering)) Widget

Available on Widget, provided by the XOnGestureWidget extension

onLongPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

onLongSecondaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

onLongTertiaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

onPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

onSecondaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

onTertiaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

p({bool firstChild = false}) Widget

Available on Widget, provided by the TextExtension extension

pad(double all) Widget

Available on Widget, provided by the XWidget extension

padBottom(double value) Widget

Available on Widget, provided by the XWidget extension

padLeft(double value) Widget

Available on Widget, provided by the XWidget extension

padOnly({double left = 0, double top = 0, double right = 0, double bottom = 0}) Widget

Available on Widget, provided by the XWidget extension

padRight(double value) Widget

Available on Widget, provided by the XWidget extension

padTop(double value) Widget

Available on Widget, provided by the XWidget extension

positioned({Key? key, double? left, double? top, double? right, double? bottom}) Widget

Available on Widget, provided by the WidgetExtension extension

primaryForeground() Widget

Available on Widget, provided by the TextExtension extension

sans() Widget

Available on Widget, provided by the TextExtension extension

secondaryForeground() Widget

Available on Widget, provided by the TextExtension extension

semiBold() Widget

Available on Widget, provided by the TextExtension extension

shadeEdge(double radius) Widget

Available on Widget, provided by the XWidgetEdge extension

shadeFrost(double value) Widget

Available on Widget, provided by the XWidgetFrost extension

shadeInvert() Widget

Available on Widget, provided by the XWidgetInvert extension

shadePixelate(double radius) Widget

Available on Widget, provided by the XWidgetPixelate extension

shadePixelateBlur({int samples = 4, double pixelSize = 8, double radius = 2}) Widget

Available on Widget, provided by the XWidgetPixelateBlur extension

shadeRGB({double radius = 5, double spin = 1}) Widget

Available on Widget, provided by the XWidgetRGB extension

shadeWarp({double amplitude = 1, double frequency = 1, double z = 1, int octaves = 2}) Widget

Available on Widget, provided by the XWidgetWarp extension

shadeWarpAnimation({double amplitude = 1, double frequency = 1, double z = 1, double zSpeed = 1, int octaves = 2}) Widget

Available on Widget, provided by the XWidgetWarp extension

singleLine() Widget

Available on Widget, provided by the TextExtension extension

sized({double? width, double? height}) Widget

Available on Widget, provided by the WidgetExtension extension

sized({double? width, double? height}) Widget

Available on Widget, provided by the XWidget extension

small() Widget

Available on Widget, provided by the TextExtension extension

textCenter() Widget

Available on Widget, provided by the TextExtension extension

textEnd() Widget

Available on Widget, provided by the TextExtension extension

textJustify() Widget

Available on Widget, provided by the TextExtension extension

textLarge() Widget

Available on Widget, provided by the TextExtension extension

textLeft() Widget

Available on Widget, provided by the TextExtension extension

textMuted() Widget

Available on Widget, provided by the TextExtension extension

textRight() Widget

Available on Widget, provided by the TextExtension extension

textSmall() Widget

Available on Widget, provided by the TextExtension extension

textStart() Widget

Available on Widget, provided by the TextExtension extension

then(InlineSpan span) Widget

Available on Widget, provided by the TextExtension extension

thenButton({required VoidCallback onPressed, required Widget child}) Widget

Available on Widget, provided by the TextExtension extension

thenInlineCode(String text) Widget

Available on Widget, provided by the TextExtension extension

thenText(String text) Widget

Available on Widget, provided by the TextExtension extension

thin() Widget

Available on Widget, provided by the TextExtension extension

toBox(BuildContext context, {bool softWarn = true}) Widget

Available on Widget, provided by the XSliverWidget extension

toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toSliver(BuildContext context, {bool fillRemaining = false, bool softWarn = true}) Widget

Available on Widget, provided by the XSliverWidget extension

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
transform({Key? key, required Matrix4 transform}) Widget

Available on Widget, provided by the WidgetExtension extension

underline() Widget

Available on Widget, provided by the TextExtension extension

withAlign(AlignmentGeometry alignment) Widget

Available on Widget, provided by the WidgetExtension extension

withMargin({double? top, double? bottom, double? left, double? right, double? horizontal, double? vertical, double? all}) Widget

Available on Widget, provided by the WidgetExtension extension

withOpacity(double opacity) Widget

Available on Widget, provided by the WidgetExtension extension

withPadding({double? top, double? bottom, double? left, double? right, double? horizontal, double? vertical, double? all, EdgeInsetsGeometry? padding}) Widget

Available on Widget, provided by the WidgetExtension extension

withTooltip(String tooltip) Widget

Available on Widget, provided by the XWidgetArcane extension

x2Large() Widget

Available on Widget, provided by the TextExtension extension

x3Large() Widget

Available on Widget, provided by the TextExtension extension

x4Large() Widget

Available on Widget, provided by the TextExtension extension

x5Large() Widget

Available on Widget, provided by the TextExtension extension

x6Large() Widget

Available on Widget, provided by the TextExtension extension

x7Large() Widget

Available on Widget, provided by the TextExtension extension

x8Large() Widget

Available on Widget, provided by the TextExtension extension

x9Large() Widget

Available on Widget, provided by the TextExtension extension

xLarge() Widget

Available on Widget, provided by the TextExtension extension

xSmall() Widget

Available on Widget, provided by the TextExtension extension

Operators

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

Static Methods

maybeOf(BuildContext context) ArcaneGridState<Object>?
The state from the closest instance of this class that encloses the given context.
of(BuildContext context) ArcaneGridState<Object>
The state from the closest instance of this class that encloses the given context.