ArcaneList<E extends Object> constructor

const ArcaneList<E extends Object>({
  1. Key? key,
  2. required List<E> items,
  3. required ReorderableItemBuilder<Widget, E> itemBuilder,
  4. ReorderCallback? onReorder,
  5. List<AnimationEffect>? enterTransition,
  6. List<AnimationEffect>? exitTransition,
  7. Duration? insertDuration,
  8. Duration? removeDuration,
  9. void onReorderStart(
    1. int
    )?,
  10. void onReorderEnd(
    1. int
    )?,
  11. ReorderItemProxyDecorator? proxyDecorator,
  12. Axis scrollDirection = Axis.vertical,
  13. EdgeInsetsGeometry? padding,
  14. bool buildDefaultDragHandles = true,
  15. AnimatedWidgetBuilder<Widget, dynamic>? insertItemBuilder,
  16. AnimatedWidgetBuilder<Widget, dynamic>? removeItemBuilder,
  17. bool longPressDraggable = true,
  18. required bool isSameItem(
    1. E a,
    2. E b
    ),
  19. Duration dragStartDelay = const Duration(milliseconds: 500),
  20. List<E> nonDraggableItems = const [],
  21. List<E> lockedItems = const [],
  22. bool enableSwap = true,
})

Creates a ArcaneList that enables users to interactively reorder items through dragging, with animated insertion and removal of items.

Implementation

const ArcaneList({
  Key? key,
  required this.items,
  required this.itemBuilder,
  this.onReorder,
  this.enterTransition,
  this.exitTransition,
  this.insertDuration,
  this.removeDuration,
  this.onReorderStart,
  this.onReorderEnd,
  this.proxyDecorator,
  this.scrollDirection = Axis.vertical,
  this.padding,
  this.buildDefaultDragHandles = true,
  this.insertItemBuilder,
  this.removeItemBuilder,
  this.longPressDraggable = true,
  required this.isSameItem,
  this.dragStartDelay = const Duration(milliseconds: 500),
  this.nonDraggableItems = const [],
  this.lockedItems = const [],
  this.enableSwap = true,
}) : super(key: key);