flutter_fancy_tree_view
A collection of widgets and slivers that helps bringing hierarchical data to life.
1.6.0
14K downloads/mo
#2533 most downloaded on pub.dev
baumths/flutter_tree_view
What this package is like to depend on
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
0 releases in the last 12 months
see the full history below
Release timeline
21 releases · Feb 2021 to Apr 2024Releases
latest 21-
1.6.024 Apr 2024Release notes
Open source →What's Changed
- Feature: allow nodes to be expanded by default
- Feature: made
TreeController.toggledNodespublic
Full Changelog: v1.5.0...v1.6.0
Release notes
Open source →- Added a way to set the default expansion state of tree nodes through
the
defaultExpansionStateproperty ofTreeController. - Made
TreeController.toggledNodespublic for state restoration/persistence.
-
1.5.010 Apr 2024Release notes
Open source →- Fixed an issue that prevented two
AnimatedTreeViews with the same nodes to be displayed alongside each other or on a router stack. - Follwing the updates to the Flutter Framework's
DragTargetwidget:- Added
TreeDragTarget.onWillAcceptWithDetails - Deprecated
TreeDragTarget.onWillAccept - Deprecated
TreeDragTarget.onAccept
- Added
Full Changelog: v1.4.1...v1.5.0
Release notes
Open source →- Fixed an issue that prevented two
AnimatedTreeViews with the same nodes to be displayed alongside each other or on a router stack. - Follwing the updates to the Flutter Framework's
DragTargetwidget:- Added
TreeDragTarget.onWillAcceptWithDetails - Deprecated
TreeDragTarget.onWillAccept - Deprecated
TreeDragTarget.onAccept
- Added
- Fixed an issue that prevented two
-
1.4.104 Oct 2023Release notes
Open source →- Revert v1.4.0 change to
collapseCascading(). The change broke non-cascading animations
- Revert v1.4.0 change to
-
1.4.004 Oct 2023Release notes
Open source →What's Changed
- Basic Search support #70
- Support setting a level limit when indenting tree nodes #71
- Fix
collapseCascading()in animated trees #72
Full Changelog: v1.3.0...v1.4.0
Release notes
Open source →- Added
TreeController.search()+ filtering example - Added a way to limit the depth of the tree. Checkout
IndentGuide.maxLevel - Fixed
collapseCascading()when used with an animated tree would only animate the first level and the other levels would just vanish immediately - Deprecated
(Descend|Return)Conditionin favor ofValuePredicate - Deprecated
alwaysReturnsTrueandalwaysReturnsFalse
-
1.3.013 Sep 2023Release notes
Open source →Release notes
Open source →- Added pub topics to pubspec.yaml
- Indentation Improvements:
- Added a way to apply dashing algorithms to the indentation lines through
AbstractLineGuide.pathModifier - Added an optional connection between the line of a parent node and its
subtree lines with
ConnectingLinesGuide.connectBranches - Added the
IndentGuide.paddingproperty, which is added to the Padding widget that indents tree nodes - Fixed an issue with rounded corners being mistakenly offset by
ConnectingLinesGuide.origin
- Added a way to apply dashing algorithms to the indentation lines through
-
1.2.018 Aug 2023Release notes
Open source → -
1.1.104 Apr 2023Release notes
Open source →- Fix an issue that caused some nodes to lose line hierarchy when the tree structure changes (e.g., node added/removed/reordered).
-
1.1.025 Mar 2023Release notes
Open source →What's Changed
- Fix refresh issue on controller change by @bambinoua in #44
- Update tree_controller.dart by @bambinoua in #42
TreeControllerimprovements by @baumths in #45
New Contributors
- @bambinoua made their first contribution in #44
Full Changelog: v1.0.0...v1.1.0
Release notes
Open source →- Fix refresh issue on controller change
- Author: @bambinoua (https://github.com/bambinoua)
TreeControllerimprovements- Added:
breadthFirstSearch() - Added:
expandAll(),collapseAll(),isTreeExpanded,isTreeCollapsed,areAllRootsExpanded,areAllRootsCollapsed- Co-Author: @bambinoua (https://github.com/bambinoua)
- Added:
-
1.0.020 Mar 2023Release notes
Open source →⚠️ Warning: Major Rewrite
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.
Additions:
- Dynamic "TreeNode" modeling through callbacks
IndentGuidesindentation decorations APISliverTreeandSliverAnimatedTreesliversAnimatedTreeViewwidgetTreeEntrytree node details object
Changes:
- Renamed
TreeViewControllertoTreeController- Removed:
find(),shouldRefresh(),nodeRefreshed(),refreshNode(),reset(),nodeAt(),isVisible(),indexOf(),expandAll(),collapseAll(),useBinarySearch,rootNode,visibleNodes,expandedNodes - Renamed methods:
expandNode->expandcollapseNode->collapsetoggleExpanded->toggleExpansionexpandSubtree->expandCascadingcollapseSubtree->collapseCascadingexpandUntil->expandAncestorsisExpanded->getExpansionState
- Added:
roots,childrenProvider(),setExpansionState(),rebuild(),depthFirstTraversal()
- Removed:
NodeWidgetLeadingIconwas rewritten asFolderButton
Removals:
- Removed
nodeHeightfromTreeView(fixed height not required anymore) - Removed
TreeViewControllerBase - Removed
TreeNodeandTreeNodeScope - Removed
NodeWidgetas it was just a wrapper aroundInkWell+Row - Removed
ExpandNodeIconas it was just a wrapper aroundExpandIcon - Removed
TreeViewTheme,LinesWidget,LinesPainterandTreeLinein favor of the newIndentGuide+TreeIndentationAPI.
-
0.5.309 Aug 2022Release notes
Open source →- Add Right-to-Left support to line painting
- Author: @naory159 (https://github.com/naory159)
- Add Right-to-Left support to line painting
-
0.5.3+112 Aug 2022Release notes
Open source →- Fix rtl line painting bug
- Author: @naory159 (https://github.com/naory159)
- Fix rtl line painting bug
-
0.5.3+201 Oct 2022Release notes
Open source →- Update [NodeWidgetLeadingIcon] icon types from [Icon] to [Widget]
- Author: @naory159 (https://github.com/naory159)
- Update [NodeWidgetLeadingIcon] icon types from [Icon] to [Widget]
-
0.5.229 Jun 2022Release notes
Open source →- Allow [TreeView.nodeHeight] to be nullable.
- Author: @mz2 (https://github.com/mz2)
- Allow [TreeView.nodeHeight] to be nullable.
-
0.5.1+110 Jun 2021Release notes
Open source →-
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.
-
-
0.5.030 May 2021Release notes
Open source →Reverts most changes from 0.4.0
-
Removing the TreeViewController made nodes inside a different page or in a drawer to lose their state.
- TreeViewController is back, all logic from _TreeViewState got moved back to it.
-
Merged the utils methods into TreeNode (ancestors, descendants, ...).
-
The TreeView no longer auto scrolls nodes.
- Now scrolling has to be done by the user.
-
-
0.4.017 May 2021Release notes
Open source →Simplification of the TreeView API.
-
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.
- Made [TreeViewState] not private anymore.
-
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
reversedSubtreeGeneratorfromutils.dartas it was not being used.
-
-
0.3.116 Apr 2021 -
0.3.015 Apr 2021Release notes
Open source →-
[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.
- The new
onAboutToExpandis useful to dynamically populate the [TreeView].
- The new
-
Some performance improvements when expanding/collapsing nodes.
-
-
0.2.112 Apr 2021Release notes
Open source →-
Added useBinarySearch option to TreeViewController.
-
Many performance improvements by reducing the amount of loops that expandNode and collapseNode took.
-
-
0.2.031 Mar 2021Release notes
Open source →-
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.
- Added some tests to TreeViewControllerBase.
-
Updated NodeWidget to a Row instead of a ListTile
- ListTile had some errors when using LinesWidget as leading.
-
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.
-
-
0.1.0-nullsafety.012 Feb 2021 pre-release