flutter_folderview 0.5.1 copy "flutter_folderview: ^0.5.1" to clipboard
flutter_folderview: ^0.5.1 copied to clipboard

A customizable Flutter widget for displaying hierarchical data in tree and folder views with rich theming support.

Flutter FolderView #

A customizable Flutter widget for displaying hierarchical data in tree and folder views.

Installation #

dependencies:
  flutter_folderview: ^0.5.1

Basic Usage #

import 'package:flutter_folderview/flutter_folderview.dart';

class MyWidget extends StatefulWidget {
  @override
  State<MyWidget> createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  final Set<String> _expandedIds = {};

  @override
  Widget build(BuildContext context) {
    return FolderView(
      data: [
        Node(
          id: '1',
          label: 'Documents',
          type: NodeType.folder,
          children: [
            Node(
              id: '2',
              label: 'Work',
              type: NodeType.parent,
              children: [
                Node(id: '3', label: 'Report.pdf', type: NodeType.child),
              ],
            ),
          ],
        ),
      ],
      expandedNodeIds: _expandedIds,
      mode: ViewMode.folder,
      onNodeTap: (node) {
        if (node.type != NodeType.child) {
          setState(() {
            if (_expandedIds.contains(node.id)) {
              _expandedIds.remove(node.id);
            } else {
              _expandedIds.add(node.id);
            }
          });
        }
      },
    );
  }
}

Node Types #

  • NodeType.folder: Top-level container nodes
  • NodeType.parent: Mid-level nodes that can have children
  • NodeType.child: Leaf nodes

View Modes #

  • ViewMode.folder: Hierarchical folder structure (folder → parent → child)
  • ViewMode.tree: Flattened tree structure (parent → child)

Line Styles #

theme: FlutterFolderViewTheme(
  lineTheme: FolderViewLineTheme(
    lineStyle: LineStyle.connector, // ├─ └─ connectors
    // lineStyle: LineStyle.scope,   // Vertical scope lines
    // lineStyle: LineStyle.none,    // No lines
  ),
)

Theming #

FolderView(
  data: nodes,
  expandedNodeIds: expandedIds,
  theme: FlutterFolderViewTheme(
    folderTheme: FolderNodeTheme(
      widget: Icon(Icons.folder),
      openWidget: Icon(Icons.folder_open),
      textStyle: TextStyle(fontSize: 14),
    ),
    parentTheme: ParentNodeTheme(
      widget: Icon(Icons.description),
      textStyle: TextStyle(fontSize: 14),
    ),
    childTheme: ChildNodeTheme(
      widget: Icon(Icons.insert_drive_file),
      textStyle: TextStyle(fontSize: 14),
      selectedTextStyle: TextStyle(fontSize: 14, fontWeight: FontWeight.bold),
    ),
  ),
)

Example #

See example/ for complete examples including:

  • Theme customization
  • Dynamic styling with resolver functions
  • Large dataset handling
cd example
flutter run
0
likes
160
points
253
downloads

Publisher

unverified uploader

Weekly Downloads

A customizable Flutter widget for displaying hierarchical data in tree and folder views with rich theming support.

Repository (GitHub)
View/report issues

Topics

#folderview #tree #folder #treeview #explorer

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on flutter_folderview