NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2540 most downloaded on pub.dev
A collection of widgets and slivers that helps bringing hierarchical data to life.
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 2 weeks to 13 months
Nearly every release is documented
notes for 20 of 20 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
21 releases · first in 2021
Feature: allow nodes to be expanded by default
TreeController.toggledNodes publicFull Changelog: v1.5.0...v1.6.0
defaultExpansionState property of TreeController.TreeController.toggledNodes public for state restoration/persistence.Deprecated TreeDragTarget.onWillAccept
AnimatedTreeViews with the same nodes to be displayed alongside each other or on a router stack.DragTarget widget:
TreeDragTarget.onWillAcceptWithDetailsTreeDragTarget.onWillAcceptTreeDragTarget.onAcceptFull Changelog: v1.4.1...v1.5.0
One column per quarter.
Fix animations issue introduced by #72
Fix animations issue introduced by #72
Full Changelog: v1.4.0...v1.4.1
collapseCascading(). The change broke non-cascading
animationsSupport setting a level limit when indenting tree nodes #71
collapseCascading() in animated trees #72Full Changelog: v1.3.0...v1.4.0
TreeController.search() + filtering exampleIndentGuide.maxLevelcollapseCascading() when used with an animated tree would only
animate the first level and the other levels would just vanish immediately(Descend|Return)Condition in favor of ValuePredicatealwaysReturnsTrue and alwaysReturnsFalseIndentation Improvements in #65
AbstractLineGuide.pathModifierConnectingLinesGuide.connectBranchesIndentGuide.padding property, which is added to the Padding
widget that indents tree nodesConnectingLinesGuide.originRudimentary drag and drop support by @baumths in #63
Fix an issue that caused some nodes to lose line hierarchy when the tree structure changes (e.g., node added/removed/reordered).
Fix refresh issue on controller change by @bambinoua in #44
TreeController improvements by @baumths in #45Full Changelog: v1.0.0...v1.1.0
TreeController improvements
breadthFirstSearch()expandAll(), collapseAll(), isTreeExpanded, isTreeCollapsed,
areAllRootsExpanded, areAllRootsCollapsed
Migrating from previous versions is discouraged as the package went through a major rewrite and has many breaking changes.
Please, treat this version as a whole new package. Migrating from previous versions is discouraged as the package went through a major rewrite and has many breaking changes.
IndentGuides indentation decorations APISliverTree and SliverAnimatedTree sliversAnimatedTreeView widgetTreeEntry tree node details objectTreeViewController to TreeController
find(), shouldRefresh(), nodeRefreshed(), refreshNode(),
reset(), nodeAt(), isVisible(), indexOf(), expandAll(),
collapseAll(), useBinarySearch, rootNode, visibleNodes,
expandedNodesexpandNode -> expandcollapseNode -> collapsetoggleExpanded -> toggleExpansionexpandSubtree -> expandCascadingcollapseSubtree -> collapseCascadingexpandUntil -> expandAncestorsisExpanded -> getExpansionStateroots, childrenProvider(), setExpansionState(), rebuild(),
depthFirstTraversal()NodeWidgetLeadingIcon was rewritten as FolderButtonnodeHeight from TreeView (fixed height not required anymore)TreeViewControllerBaseTreeNode and TreeNodeScopeNodeWidget as it was just a wrapper around InkWell + RowExpandNodeIcon as it was just a wrapper around ExpandIconTreeViewTheme, LinesWidget, LinesPainter and TreeLine
in favor of the new IndentGuide + TreeIndentation API.- Fix rtl line painting bug - Author: @naory159
update Icon to Widget for more flexibility by @naory159 in #34
Full Changelog: v0.5.3+1...v0.5.3+2
Add Right-to-Left support to line painting
Allow [TreeView.nodeHeight] to be nullable.
Fixes logic that marks nodes to refresh
Fixes logic that marks nodes to refresh
Before only child nodes were getting marked as needing refresh, causing the grand children and it's subtrees not to refresh, breaking lines hierarchy.
Removing the TreeViewController made nodes inside a different page or in a drawer to lose their state.
Removing the TreeViewController made nodes inside a different page or in a drawer to lose their state.
Merged the utils methods into TreeNode (ancestors, descendants, ...).
The TreeView no longer auto scrolls nodes.
Dropped TreeViewController and merged it's logic into [TreeViewState] to make the code less 'spaghetti'. Instead of the controller, use a [GlobalKey ]
Dropped TreeViewController and merged it's logic into [TreeViewState] to make the code less 'spaghetti'. Instead of the controller, use a [GlobalKey<TreeViewState>] to control the [TreeView] from outside of it's widget subtree and [TreeView.of] from within it's widget subtree.
New scrolling functionality.
Added [scrollController] optional property to [TreeView].
Added [shouldAutoScroll] property to [TreeView].
Added [scrollTo] method to [TreeViewState].
Renamed ScopedTreeNode to TreeNodeScope.
Renamed InheritedTreeView to _TreeViewScope.
Removed reversedSubtreeGenerator from utils.dart as it was not being used.
Implemented rounded corners for connected lines.
[ExpandNodeIcon] and [NodeWidgetLeadingIcon] are able to expand/collapse leaf nodes.
[ExpandNodeIcon] and [NodeWidgetLeadingIcon] are able to expand/collapse leaf nodes.
[TreeNode.children] changed from [List] to [Set] to avoid duplicate children.
The [TreeViewController] received a new callback.
onAboutToExpand is useful to dynamically populate the [TreeView].Some performance improvements when expanding/collapsing nodes.
Added useBinarySearch option to TreeViewController.
Added useBinarySearch option to TreeViewController.
Many performance improvements by reducing the amount of loops that expandNode and collapseNode took.
The old API was very "janky" with AnimatedList, TreeView now uses ListView.custom under the hood.
Stable null safety release.
Refactoring of the entire API:
The old API was very "janky" with AnimatedList, TreeView now uses ListView.custom under the hood.
New InheritedTreeView inherited widget is used under the hood to get access to TreeViewController and TreeViewTheme from TreeView.of() method.
New ScopedTreeNode inherited widget, to get a TreeNode from anywhere under it in the widget tree, every TreeNode has its own ScopedTreeNode.
New NodeWidgetLeadingIcon for a folder/file icon approach.
The TreeViewController is now a ChangeNotifier, to talk to TreeView more easily.
TreeNode received a delete() method that removes it from the tree and clear its relationships.
Extracted the main implementation of TreeViewController to a base class to be able to change the expansion of a node without notifying listeners.
Updated NodeWidget to a Row instead of a ListTile
Dropped support for selecting/disabling nodes as it was getting very complicated and "hacky" to manage.
Dropped TreeLine.link as it was complicating the indentation of nodes.
Plus Many upgrades and fixes.
* First release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →