super_tree 0.2.1
super_tree: ^0.2.1 copied to clipboard
A high-performance, customizable hierarchical tree view for Flutter with desktop and mobile interactions.
Super Tree
#
A high-performance, fully customizable, and platform-agnostic hierarchical tree view for Flutter.
Build complex tree structures like File Explorers, Todo Lists, or Permission Trees with ease.
Key Features #
- High Performance: Flat-list architecture for smooth scrolling.
- Fully Customizable: Builders and styling.
- Desktop and Mobile Ready: Keyboard nav, context menus, drag-and-drop.
- State Management: Optional controller for expansion, selection, updates.
- Prebuilt Widgets: Ready-to-use file-system and todo trees.
- Search and Selection: Fuzzy search and multi-selection.
Getting Started #
Add super_tree to your pubspec.yaml:
dependencies:
super_tree: ^0.2.1
flutter pub add super_tree
Usage #
Simple Tree View #
Building a tree is as simple as providing a list of nodes:
import 'package:super_tree/super_tree.dart';
SuperTreeView<String>(
roots: [
TreeNode(
id: 'root',
data: 'Documents',
children: [
TreeNode(id: 'child1', data: 'Resume.pdf'),
TreeNode(id: 'child2', data: 'Budget.xlsx'),
],
),
],
prefixBuilder: (context, node) => Icon(
node.hasChildren ? Icons.folder : Icons.insert_drive_file,
),
contentBuilder: (context, node, renameField) => Text(node.data),
)
Advanced Usage with Controller #
For dynamic updates and interaction handling, use TreeController<T>:
final controller = TreeController<MyData>(
roots: initialRoots,
onNodeRenamed: (node, newName) => print('Renamed to $newName'),
);
// Toggle programmatically
controller.expandAll();
controller.addRoot(newNode);
controller.search("query");
Preview Gallery #
Current in-repo previews:
File System Explorer + Search![]() |
Checkbox State![]() |
Complex Node UI![]() |
Todo Tree![]() |
Minimal File System![]() |
Notes:
- Screenshot generation uses
flutter test --update-goldensinexample/test/generate_previews_test.dart. - GIF creation is optional and requires
ffmpeg. - Canonical screenshot assets are stored in
assets/screenshots/and committed to the repo.
Contributing #
Contributions are welcome! Please feel free to submit a Pull Request or open an issue.
License #
MIT




