PackageTrack
Sign in Get early access

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 2024
2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 21
  1. 1.6.0 24 Apr 2024
    Release notes

    What's Changed

    • Feature: allow nodes to be expanded by default
    • Feature: made TreeController.toggledNodes public

    Full Changelog: v1.5.0...v1.6.0

    Open source →
    Release notes
    • Added a way to set the default expansion state of tree nodes through the defaultExpansionState property of TreeController.
    • Made TreeController.toggledNodes public for state restoration/persistence.
    Open source →
  2. 1.5.0 10 Apr 2024
    Release notes
    • 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 DragTarget widget:
      • Added TreeDragTarget.onWillAcceptWithDetails
      • Deprecated TreeDragTarget.onWillAccept
      • Deprecated TreeDragTarget.onAccept

    Full Changelog: v1.4.1...v1.5.0

    Open source →
    Release notes
    • 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 DragTarget widget:
      • Added TreeDragTarget.onWillAcceptWithDetails
      • Deprecated TreeDragTarget.onWillAccept
      • Deprecated TreeDragTarget.onAccept
    Open source →
  3. 1.4.1 04 Oct 2023
    Release notes

    Fix animations issue introduced by #72

    Full Changelog: v1.4.0...v1.4.1

    Open source →
    Release notes
    • Revert v1.4.0 change to collapseCascading(). The change broke non-cascading animations
    Open source →
  4. 1.4.0 04 Oct 2023
    Release notes

    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

    Open source →
    Release notes
    • 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)Condition in favor of ValuePredicate
    • Deprecated alwaysReturnsTrue and alwaysReturnsFalse
    Open source →
  5. 1.3.0 13 Sep 2023
    Release notes

    What's Changed

    Full Changelog: v1.2.0...v1.3.0

    Open source →
    Release notes
    • 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.padding property, which is added to the Padding widget that indents tree nodes
      • Fixed an issue with rounded corners being mistakenly offset by ConnectingLinesGuide.origin
    Open source →
  6. 1.2.0 18 Aug 2023
    Release notes

    What's Changed

    Full Changelog: v1.1.1...v1.2.0

    Open source →
    Release notes
    • Upgrade to Dart 3
    • Rudimentary Drag and Drop support
    Open source →
  7. 1.1.1 04 Apr 2023
    Release notes
    • Fix an issue that caused some nodes to lose line hierarchy when the tree structure changes (e.g., node added/removed/reordered).
    Open source →
  8. 1.1.0 25 Mar 2023
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v1.0.0...v1.1.0

    Open source →
    Release notes
    • Fix refresh issue on controller change
      • Author: @bambinoua (https://github.com/bambinoua)
    • TreeController improvements
      • Added: breadthFirstSearch()
      • Added: expandAll(), collapseAll(), isTreeExpanded, isTreeCollapsed, areAllRootsExpanded, areAllRootsCollapsed
        • Co-Author: @bambinoua (https://github.com/bambinoua)
    Open source →
  9. 1.0.0 20 Mar 2023
    Release notes

    ⚠️ 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
    • IndentGuides indentation decorations API
    • SliverTree and SliverAnimatedTree slivers
    • AnimatedTreeView widget
    • TreeEntry tree node details object

    Changes:

    • Renamed TreeViewController to TreeController
      • Removed: find(), shouldRefresh(), nodeRefreshed(), refreshNode(), reset(), nodeAt(), isVisible(), indexOf(), expandAll(), collapseAll(), useBinarySearch, rootNode, visibleNodes, expandedNodes
      • Renamed methods:
        • expandNode -> expand
        • collapseNode -> collapse
        • toggleExpanded -> toggleExpansion
        • expandSubtree -> expandCascading
        • collapseSubtree -> collapseCascading
        • expandUntil -> expandAncestors
        • isExpanded -> getExpansionState
      • Added: roots, childrenProvider(), setExpansionState(), rebuild(), depthFirstTraversal()
    • NodeWidgetLeadingIcon was rewritten as FolderButton

    Removals:

    • Removed nodeHeight from TreeView (fixed height not required anymore)
    • Removed TreeViewControllerBase
    • Removed TreeNode and TreeNodeScope
    • Removed NodeWidget as it was just a wrapper around InkWell + Row
    • Removed ExpandNodeIcon as it was just a wrapper around ExpandIcon
    • Removed TreeViewTheme, LinesWidget, LinesPainter and TreeLine in favor of the new IndentGuide + TreeIndentation API.
    Open source →
  10. 0.5.3 09 Aug 2022
    Release notes
    • Add Right-to-Left support to line painting
      • Author: @naory159 (https://github.com/naory159)
    Open source →
  11. 0.5.3+1 12 Aug 2022
    Release notes
    • Fix rtl line painting bug
      • Author: @naory159 (https://github.com/naory159)
    Open source →
  12. 0.5.3+2 01 Oct 2022
    Release notes

    What's Changed

    • update Icon to Widget for more flexibility by @naory159 in #34

    Full Changelog: v0.5.3+1...v0.5.3+2

    Open source →
    Release notes
    • Update [NodeWidgetLeadingIcon] icon types from [Icon] to [Widget]
      • Author: @naory159 (https://github.com/naory159)
    Open source →
  13. 0.5.2 29 Jun 2022
    Release notes
    • Allow [TreeView.nodeHeight] to be nullable.
      • Author: @mz2 (https://github.com/mz2)
    Open source →
  14. 0.5.1+1 10 Jun 2021
    Release notes
    • 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.

    Open source →
  15. 0.5.0 30 May 2021
    Release notes

    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.
    Open source →
  16. 0.4.0 17 May 2021
    Release notes

    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 reversedSubtreeGenerator from utils.dart as it was not being used.

    Open source →
  17. 0.3.1 16 Apr 2021
    Release notes
    • Implemented rounded corners for connected lines.
    Open source →
  18. 0.3.0 15 Apr 2021
    Release notes
    • [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 onAboutToExpand is useful to dynamically populate the [TreeView].
    • Some performance improvements when expanding/collapsing nodes.

    Open source →
  19. 0.2.1 12 Apr 2021
    Release notes
    • Added useBinarySearch option to TreeViewController.

    • Many performance improvements by reducing the amount of loops that expandNode and collapseNode took.

    Open source →
  20. 0.2.0 31 Mar 2021
    Release notes
    • 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.

    Open source →
  21. 0.1.0-nullsafety.0 12 Feb 2021 pre-release
    Release notes
    • First release.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive