flutter_jenkins/lib/pages/page1/qr.dart
2022-06-15 10:18:33 +08:00

97 lines
2.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:qr_code_scanner/qr_code_scanner.dart';
import 'dart:io';
import 'package:qr_flutter/qr_flutter.dart';
class QrWidget extends StatefulWidget {
const QrWidget({Key? key}) : super(key: key);
@override
State<QrWidget> createState() => _QrWidgetState();
}
class _QrWidgetState extends State<QrWidget> {
final GlobalKey qrKey = GlobalKey(debugLabel: 'QR');
Barcode? result;
QRViewController? controller;
@override
initState(){
}
@override
void reassemble() {
super.reassemble();
// if (Platform.isAndroid) {
// controller!.pauseCamera();
// } else if (Platform.isIOS) {
// controller!.resumeCamera();
// }
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('QR'),
centerTitle: true,
elevation: 0.0,
),
body: Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: 300,
height: 300,
child: QRView(
key: qrKey,
onQRViewCreated: _onQRViewCreated,
),
),
Container(
width: 300,
height: 300,
child: QrImage(
data: "1234567890",
version: QrVersions.auto,
size: 200.0,
),
),
],
),
Expanded(
flex: 1,
child: Center(
child: (result != null)
? Text(
'Barcode Type:Data: ${result!.code}')
: Text('Scan a code'),
),
)
],
),
);
}
void _onQRViewCreated(QRViewController controller) {
this.controller = controller;
controller.scannedDataStream.listen((scanData) {
setState(() {
result = scanData;
print(result);
});
});
controller.resumeCamera();
}
@override
void dispose() {
controller?.dispose();
super.dispose();
}
}