Package selection guidance compiled from public package information, community data, and project usage.
Flutter Tree Pro is a customizable tree selection widget for Flutter, enabling users to navigate and select hierarchical data structures with ease. It supports right-to-left (RTL) layouts, making it suitable for multilingual applications. The package integrates seamlessly across Android, iOS, Web, macOS, Windows, and Linux platforms. Designed for intuitive user interaction, it allows developers to build complex tree-based interfaces such as file explorers, organizational charts, or category selectors. Its lightweight and flexible architecture ensures smooth performance even with large datasets.
Use cases
File explorer interfaces
Organizational chart displays
Category filtering systems
Hierarchical data selection
Settings navigation menus
Key features
RTL support
Cross-platform compatibility
Customizable node styling
Efficient rendering for large trees
Multi-selection capability
Suitable for
Developers building hierarchical UIs
Apps requiring tree-based navigation
Internationalized applications
Complex data structure visualization
Web and mobile apps with shared codebases
Considerations
May require custom styling for complex themes
Performance impact with extremely deep trees
Limited built-in animations
Requires manual handling of state management
Not optimized for real-time collaborative editing
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
flutter_tree_pro
A Flutter tree-select widget with checkbox selection, single-select mode, RTL support, and leaf-node drag-and-drop.
Demo
Features
Build tree data from flat list (DataType.DataList) or nested map (DataType.DataMap)
Multi-select with parent/child check-state synchronization
Single-select mode with initial selected node
Expand/collapse nodes
RTL layout support
Custom tree connector line style (TreeLineStyle)
Drag-and-drop for leaf nodes
Drop on a non-leaf node: dragged leaf becomes a child of that node
Drop on a leaf node: dragged leaf is inserted after target leaf as a sibling