Created
March 10, 2021 14:04
-
-
Save danagbemava/ea83733e62e57a2fb94370844655073b to your computer and use it in GitHub Desktop.
Reproducible error for qr code
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'dart:io'; | |
import 'package:flutter/foundation.dart'; | |
import 'package:flutter/material.dart'; | |
import 'package:qr_code_scanner/qr_code_scanner.dart'; | |
void main() { | |
runApp(MyApp()); | |
} | |
class MyApp extends StatelessWidget { | |
@override | |
Widget build(BuildContext context) { | |
return MaterialApp( | |
title: 'Flutter Demo', | |
theme: ThemeData( | |
primarySwatch: Colors.blue, | |
visualDensity: VisualDensity.adaptivePlatformDensity, | |
), | |
home: TestStart(), | |
); | |
} | |
} | |
class TestStart extends StatelessWidget { | |
@override | |
Widget build(BuildContext context) { | |
return Scaffold( | |
body: Center( | |
child: TextFormField( | |
decoration: InputDecoration( | |
labelText: 'Search', | |
prefixIcon: IconButton( | |
icon: Icon(Icons.qr_code), | |
onPressed: () async { | |
final res = await Navigator.of(context).push( | |
MaterialPageRoute( | |
builder: (BuildContext context) => QrScannerWidget(), | |
), | |
); | |
print(res); | |
}, | |
), | |
), | |
), | |
), | |
); | |
} | |
} | |
class QrScannerWidget extends StatefulWidget { | |
QrScannerWidget({Key key}) : super(key: key); | |
@override | |
_QrScannerWidgetState createState() => _QrScannerWidgetState(); | |
} | |
class _QrScannerWidgetState extends State<QrScannerWidget> { | |
GlobalKey qrKey = GlobalKey(); | |
QRViewController controller; | |
var qrText = ' Henüz tarama yapmadın'; | |
@override | |
void initState() { | |
super.initState(); | |
} | |
@override | |
Widget build(BuildContext context) { | |
return Scaffold( | |
backgroundColor: Colors.black, | |
body: Stack( | |
children: [ | |
QRView( | |
key: qrKey, | |
overlay: QrScannerOverlayShape( | |
borderRadius: 16, | |
borderColor: Colors.white, | |
borderLength: 120, | |
borderWidth: 10, | |
cutOutSize: 300, | |
), | |
onQRViewCreated: _onQRViewCreate, | |
), | |
Align( | |
alignment: Alignment.center, | |
child: Container( | |
margin: EdgeInsets.all(8.0), | |
constraints: BoxConstraints(maxWidth: 250), | |
child: Image.asset( | |
'assets/barcode.png', | |
fit: BoxFit.cover, | |
color: Colors.grey[300].withOpacity(0.3), | |
), | |
), | |
) | |
], | |
), | |
); | |
} | |
@override | |
void dispose() { | |
controller.dispose(); | |
super.dispose(); | |
} | |
void _onQRViewCreate(QRViewController controller) { | |
this.controller = controller; | |
String qrData; | |
controller.scannedDataStream.listen((scanData) { | |
if (scanData != null) { | |
print('qrdata: ${scanData.code}'); | |
qrData = scanData.code; | |
qrData = qrData.replaceAll(new RegExp(r'[^\w\s]+'), ''); | |
print(qrData); | |
controller.dispose(); | |
} | |
}, onDone: () { | |
Navigator.of(context).pop(qrData); | |
}); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment