filex 0.3.0 copy "filex: ^0.3.0" to clipboard
filex: ^0.3.0 copied to clipboard

A configurable file explorer widget for Flutter. Trailing and leading widgets are configurable.

example/lib/main.dart

import 'dart:async';
import 'dart:io';

import 'package:filex/filex.dart';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
import 'package:permission/permission.dart';

class _FileExplorerState extends State<FileExplorer> {
  var _ready = false;
  FilexController controller;

  String _dirPath;
  final _onReady = Completer<void>();

  Future<void> getDir() async {
    //dir = await getApplicationDocumentsDirectory();
    final dir = await getExternalStorageDirectory();
    switch (Platform.isAndroid) {
      case true:
        _dirPath = dir.path
            .replaceFirst("Android/data/com.example.filex_example/files", "");
        break;
      default:
        _dirPath = dir.path;
    }

    print("Storage dir: $_dirPath");
    _onReady.complete();
  }

  @override
  void initState() {
    getDir();
    super.initState();
    Permission.requestPermissions([PermissionName.Storage])
        .then((_) => _onReady.future.then((_) {
              controller = FilexController(path: _dirPath);
              setState(() => _ready = true);
            }));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Files"),
        actions: <Widget>[
          IconButton(
            icon: const Icon(Icons.add),
            onPressed: () => controller.addDirectory(context),
          )
        ],
      ),
      body: _ready
          ? Filex(
              controller: controller,
              actions: <PredefinedAction>[PredefinedAction.delete],
            )
          : const Center(child: CircularProgressIndicator()),
    );
  }
}

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Filex Demo',
      home: FileExplorer(),
    );
  }
}

class FileExplorer extends StatefulWidget {
  @override
  _FileExplorerState createState() => _FileExplorerState();
}
6
likes
40
pub points
4%
popularity

Publisher

unverified uploader

A configurable file explorer widget for Flutter. Trailing and leading widgets are configurable.

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

extra_pedantic, filesize, flutter, flutter_slidable, open_file, path, path_provider, pedantic, permission, rxdart

More

Packages that depend on filex