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.animateScrollToKeyhandles 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.