flutterx_drop_view 1.0.0 copy "flutterx_drop_view: ^1.0.0" to clipboard
flutterx_drop_view: ^1.0.0 copied to clipboard

outdated

A widget where you can drop files into it, and also pick files from system file browser.

example/lib/main.dart

import 'package:cross_file/cross_file.dart';
import 'package:flutter/material.dart';
import 'package:flutterx_drop_view/flutterx_drop_view.dart';
import 'package:flutterx_live_data/flutterx_live_data.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) => MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutterx DropView Demo',
      theme: ThemeData(primarySwatch: Colors.deepOrange),
      home: const DropViewExample());
}

class DropViewExample extends StatefulWidget {
  const DropViewExample({Key? key}) : super(key: key);

  @override
  State<DropViewExample> createState() => _DropViewExampleState();
}

class _DropViewExampleState extends State<DropViewExample> {
  final LiveList<XFile> _files = LiveList();

  @override
  Widget build(BuildContext context) => Scaffold(
      appBar: AppBar(title: const Text('DropView example')),
      body: Center(
          child: FlutterxDropView.multiple(
              mimeTypes: const {'application/pdf'},
              onMimeTypeNotMatch: (error) =>
                  ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(error.toString()))),
              files: _files,
              builder: (context, dragging) => Column(children: [
                    LiveDataBuilder<bool>(data: dragging, builder: (context, dragging) => Text('Dragging: $dragging')),
                    LiveDataBuilder<List<XFile>>(
                        data: _files,
                        builder: (context, files) => Text('Dropped: ${files.map((e) => e.name).join(', ')}')),
                    ElevatedButton(
                        onPressed: () =>
                            FlutterxDropView.pickFiles(mimeTypes: const {'application/pdf'}, files: _files),
                        child: const Text('OPEN')),
                  ]))));
}
2
likes
0
points
24
downloads

Publisher

unverified uploader

Weekly Downloads

A widget where you can drop files into it, and also pick files from system file browser.

Repository (GitLab)
View/report issues

License

unknown (license)

Dependencies

cross_file, flutter, flutter_html, flutterx_live_data, flutterx_utils, mime

More

Packages that depend on flutterx_drop_view