in_app_file_view 1.1.0 copy "in_app_file_view: ^1.1.0" to clipboard
in_app_file_view: ^1.1.0 copied to clipboard

PlatformiOS

A Flutter plugin to view various file types such as PDFs, DOCs, PPTs, Excel files, and images (PNG, JPG, JPEG, HEIC, GIF).

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:in_app_file_view/in_app_file_view.dart';

import 'page_file_view.dart';

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

// ignore: public_member_api_docs
class MyApp extends StatefulWidget {
  // ignore: public_member_api_docs
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      localizationsDelegates: <LocalizationsDelegate<dynamic>>[
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
        FileViewLocalizationsDelegate.delegate,
      ],
      supportedLocales: <Locale>[Locale('en', 'US')],
      debugShowCheckedModeBanner: false,
      home: HomePage(),
    );
  }
}

// ignore: public_member_api_docs
class HomePage extends StatefulWidget {
  // ignore: public_member_api_docs
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  List<String> files = <String>[
    'FileTest.docx',
    'FileTest.doc',
    'FileTest.xlsx',
    'FileTest.pptx',
    'FileTest.pdf',
    'FileTest.txt',
    'FileTest.jpg',
    'FileTest.jpeg',
    'FileTest.png',
    'FileTest.gif',
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('File View')),
      body: _buildBodyWidget(),
    );
  }

  Widget _buildBodyWidget() {
    return ListView.builder(
      itemCount: files.length,
      itemBuilder: (BuildContext context, int index) {
        final String filePath = files[index];
        String fileShowText = '';

        final int i = filePath.lastIndexOf('/');
        if (i <= -1) {
          fileShowText = filePath;
        } else {
          fileShowText = filePath.substring(i + 1);
        }

        final Widget child = ElevatedButton(
          onPressed: () {
            FileViewController? controller;

            if (filePath.contains('http://') || filePath.contains('https://')) {
              controller = FileViewController.network(filePath);
            } else {
              controller = FileViewController.asset('assets/files/$filePath');
            }

            Navigator.of(context).push(
              MaterialPageRoute<void>(
                builder: (_) => FileViewPage(controller: controller!),
              ),
            );
          },
          child: Text(fileShowText),
        );

        return Container(
          margin: const EdgeInsets.only(top: 10),
          padding: const EdgeInsets.symmetric(horizontal: 15),
          child: child,
        );
      },
    );
  }
}
8
likes
140
points
6.85k
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin to view various file types such as PDFs, DOCs, PPTs, Excel files, and images (PNG, JPG, JPEG, HEIC, GIF).

Documentation

API reference

License

MIT (license)

Dependencies

dio, flutter

More

Packages that depend on in_app_file_view

Packages that implement in_app_file_view