custom_signature 0.0.4 copy "custom_signature: ^0.0.4" to clipboard
custom_signature: ^0.0.4 copied to clipboard

This package project offers an easy way to get your signature with a custom UI, and rotates automatically into landscape mode for most comfortable space to sign.

example/main.dart

import 'package:custom_signature/custom_signature.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
        debugShowCheckedModeBanner: false, title: 'Example', home: FirstPage());
  }
}

class FirstPage extends StatelessWidget {
  const FirstPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Center(
      child: ElevatedButton(
          child: const Text('To sign'),
          onPressed: () {
            Navigator.push(
                context,
                MaterialPageRoute(
                    builder: (BuildContext context) => CustomSignature(
                          context: context,
                          title: 'Signature',
                          closeButtonColor: Colors.indigo,
                          icon: Icons.close,
                          enabledButtonColor: Colors.green,
                          disabledButtonColor:
                              Colors.lightGreen.withOpacity(0.5),
                          penColor: Colors.black,
                          textColor: Colors.black,
                          nextPage: const ShowSignaturePage(),
                          deleteButtonText: 'Delete',
                          doneButtonText: 'Done',
                          closeAlert: AlertDialog(
                            content: const Text('Do you want to exit?'),
                            actions: [
                              ElevatedButton(
                                  child: const Text('Ok'),
                                  onPressed: () {
                                    Navigator.pop(context);
                                    Navigator.pop(context);
                                  }),
                              MaterialButton(
                                  onPressed: () => Navigator.pop(context),
                                  child: const Text('No')),
                            ],
                          ),
                        )));
          }),
    ));
  }
}

class ShowSignaturePage extends StatefulWidget {
  const ShowSignaturePage({super.key});

  @override
  State<ShowSignaturePage> createState() => _ShowSignaturePageState();
}

class _ShowSignaturePageState extends State<ShowSignaturePage> {
  @override
  void initState() {
    super.initState();

    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
      DeviceOrientation.portraitDown,
    ]);
  }

  @override
  void dispose() {
    super.dispose();

    SystemChrome.setPreferredOrientations([
      DeviceOrientation.landscapeRight,
      DeviceOrientation.landscapeLeft,
    ]);
  }

  @override
  Widget build(BuildContext context) {
    Uint8List data = ModalRoute.of(context)!.settings.arguments as Uint8List;

    return Scaffold(
      appBar: AppBar(),
      body: Center(
        child: Image.memory(data),
      ),
    );
  }
}
1
likes
0
pub points
23%
popularity

Publisher

unverified uploader

This package project offers an easy way to get your signature with a custom UI, and rotates automatically into landscape mode for most comfortable space to sign.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, signature

More

Packages that depend on custom_signature