sliver_tree/sliver_tree library

SliverTree: a sliver-based tree with animated expand and collapse, FLIP reorder slides, drag-and-drop reordering, and sticky headers.

Entry points: SliverTree driven imperatively through a TreeController, SyncedSliverTree for declarative diffing of a desired tree, and SliverReorderableTree with TreeReorderController for drag-and-drop.

This barrel is the module's public surface; anything not exported here is internal regardless of its name.

Classes

AnimationState
Animation state for a single node (standalone animations only).
BulkAnimationData<TKey>
Snapshot of the controller's bulk-animation state at a single point in time, fetched as one unit so render-layer hot paths can avoid the four separate getter calls (isBulkAnimating, bulkAnimationValue, bulkAnimationGeneration, isBulkMember) that would otherwise be needed each layout.
RenderSliverTree<TKey, TData>
Render object for displaying a tree structure as a sliver.
ReorderRenderPort<TKey>
Render-layer contract consumed by TreeReorderController.
SlideAnimation<TKey>
Slide animation state for a single node in a FLIP-style reorder.
SliverReorderableTree<TKey, TData>
Declarative drag-and-drop reorderable SliverTree.
SliverTree<TKey, TData>
A sliver that displays a tree structure with support for expand/collapse animations.
SliverTreeElement<TKey, TData>
Element for SliverTree that creates and manages child elements.
SliverTreeParentData
Parent data for children of RenderSliverTree.
SyncedSliverTree<TKey, TItem>
A sliver widget that declaratively displays a tree and animates changes.
SyncedTreeNode<TKey, TItem>
A node of the nested tree that SyncedSliverTree's default constructor consumes.
TreeAnimationSpec
A (duration, curve) pair for one animation family.
TreeAnimationStyle
Timing/easing for every animation family in the sliver tree stack.
TreeChildManager<TKey>
Interface for managing child render objects in RenderSliverTree.
TreeController<TKey, TData>
Controller for a SliverTree widget.
TreeDelayedDragHandle
A TreeDragHandle that waits for a long press before lifting the row.
TreeDragHandle
Arms child as a drag handle for the row that encloses it.
TreeDropTarget<TKey>
Resolved semantic drop target for the current pointer position during a drag.
TreeItemView<TKey, TItem>
Rich view of a visible synced tree node passed to itemBuilder.
TreeNode<TKey, TData>
User-provided data for a tree node.
TreeNodeBuilder<TKey, TData>
A widget that listens to a TreeController but rebuilds only when the specified node's TreeController.hasChildren or TreeController.isExpanded answer actually changes.
TreeReorderConfig<TKey>
Everything a declarative tree needs to support drag-and-drop reorder.
TreeReorderController<TKey>
Controls a drag-and-drop reorder over a TreeController.
TreeRowDragScope
Published by each reorderable row; found by TreeDragHandle.build.
TreeSyncController<TKey, TData>
A controller that syncs a TreeController to a desired state using animated diffs.

Enums

AncestorExpansionMode
How TreeController.animateScrollToKey handles ancestors of the target key that are currently collapsed.
AnimationType
The type of animation a node is currently undergoing.
TreeAnimationFamily
The animation families a TreeAnimationStyle carries. Declared at the site that installs an animation and never re-derived downstream.
TreeDropZone
Where the pointer lies relative to a candidate drop-target row.

Typedefs

ReorderSemanticsActionsBuilder<TKey> = Map<CustomSemanticsAction, VoidCallback> Function(TKey nodeKey, Map<CustomSemanticsAction, VoidCallback> builtIn)
Transforms the reorder actions a row exposes to assistive technology.
TreeItemBuilder<TKey, TItem> = Widget Function(BuildContext context, TreeItemView<TKey, TItem> node)
Builds a widget for a visible synced tree node.