qr_plugin 0.0.3 copy "qr_plugin: ^0.0.3" to clipboard
qr_plugin: ^0.0.3 copied to clipboard

A new Flutter plugin for qr code and bar code scanning.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:qr_code_scanner/qr_scanner_overlay_shape.dart';
import 'package:qr_plugin/qr_plugin.dart';

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

const flash_on = "FLASH ON";
const flash_off = "FLASH OFF";
const front_camera = "FRONT CAMERA";
const back_camera = "BACK CAMERA";

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  var qrText = "";
  var flashState = flash_on;
  var cameraState = front_camera;
  QRViewController controller;
  final GlobalKey qrKey = GlobalKey(debugLabel: 'QR');

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
      body: Column(
        children: <Widget>[
          Expanded(
            child: QRView(
              onFlashPress: onFlashPress,
              onFlip: onFlip,
              key: qrKey,
              onQRViewCreated: _onQRViewCreated,
              overlay: QrScannerOverlayShape(
                borderColor: Colors.red,
                borderRadius: 10,
                borderLength: 30,
                borderWidth: 10,
                cutOutSize: 230,
              ),
            ),
            flex: 4,
          ),
          Expanded(
            child: FittedBox(
              fit: BoxFit.contain,
              child: Column(
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: <Widget>[
                  SizedBox(height: 5.0,),
                  Text("This is the result of scan: $qrText"),
                  Row(
                    mainAxisAlignment: MainAxisAlignment.center,
                    crossAxisAlignment: CrossAxisAlignment.center,
                    children: <Widget>[
                      Container(
                        margin: EdgeInsets.all(8.0),
                        child: RaisedButton(
                          onPressed: () {
                            controller?.pauseCamera();
                          },
                          child: Text('pause', style: TextStyle(fontSize: 20)),
                        ),
                      ),
                      Container(
                        margin: EdgeInsets.all(8.0),
                        child: RaisedButton(
                          onPressed: () {
                            controller?.resumeCamera();
                          },
                          child: Text('resume', style: TextStyle(fontSize: 20)),
                        ),
                      )
                    ],
                  ),
                ],
              ),
            ),
            flex: 1,
          )
        ],
      ),
    )
    );
  }

  _isFlashOn(String current) {
    return flash_on == current;
  }

  _isBackCamera(String current) {
    return back_camera == current;
  }

  void onFlashPress() {
    if (controller != null) {
      controller.toggleFlash();
      if (_isFlashOn(flashState)) {
        setState(() {
          flashState = flash_off;
        });
      } else {
        setState(() {
          flashState = flash_on;
        });
      }
    }
  }

  void onFlip() {
    if (controller != null) {
      controller.flipCamera();
      if (_isBackCamera(cameraState)) {
        setState(() {
          cameraState = front_camera;
        });
      } else {
        setState(() {
          cameraState = back_camera;
        });
      }
    }
  }

  void _onQRViewCreated(QRViewController controller) {
    this.controller = controller;
    controller.scannedDataStream.listen((scanData) {
      setState(() {
        qrText = scanData;
      });
    });
  }

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }
}
0
likes
20
pub points
0%
popularity

Publisher

unverified uploader

A new Flutter plugin for qr code and bar code scanning.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, qr_code_scanner

More

Packages that depend on qr_plugin