sliver_tree/synced_sliver_tree library
A declarative sliver tree with data-first input modes.
SyncedSliverTree owns both a TreeController and a TreeSyncController internally. Callers provide domain data through one of five input shapes:
- SyncedSliverTree.new for an immutable nested SyncedTreeNode tree
- SyncedSliverTree.nodes for existing TreeNode roots plus
childrenOf - SyncedSliverTree.hierarchy for nested objects
- SyncedSliverTree.flat for flat items with parent keys
- SyncedSliverTree.snapshot for precomputed tree structure
The widget diffs the normalized tree on rebuild and applies animated insertions, removals, and reparenting.
Classes
-
SyncedSliverTree<
TKey, TItem> - A sliver widget that declaratively displays a tree and animates changes.
-
TreeItemView<
TKey, TItem> -
Rich view of a visible synced tree node passed to
itemBuilder. -
TreeSnapshot<
TKey, TItem> - Immutable normalized tree structure consumed by SyncedSliverTree.
Extensions
-
TreeItemViewWatch
on TreeItemView<
TKey, TItem>
Typedefs
-
TreeItemBuilder<
TKey, TItem> = Widget Function(BuildContext context, TreeItemView< TKey, TItem> node) - Builds a widget for a visible synced tree node.