You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.3 KiB

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:qr_code_scanner/qr_code_scanner.dart';
class BeeQR {
static Future<String?> scan() async {
return await Get.to(() => _QRScanPage());
}
}
class _QRScanPage extends StatefulWidget {
_QRScanPage({Key? key}) : super(key: key);
@override
__QRScanPageState createState() => __QRScanPageState();
}
class __QRScanPageState extends State<_QRScanPage> {
final GlobalKey qrKey = GlobalKey(debugLabel: 'QR');
QRViewController? _controller;
bool _doneTag = false;
@override
void dispose() {
_controller?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: SizedBox(
width: double.infinity,
height: double.infinity,
child: QRView(
key: qrKey,
overlay: QrScannerOverlayShape(
borderRadius: 8,
),
onQRViewCreated: (controller) {
_controller = controller;
controller.scannedDataStream.listen((event) {
if (!_doneTag) {
_doneTag = true;
Get.back(result: event.code);
}
});
},
),
),
);
}
}