gpt4 book ai didi

Flutter qr_code_scanner 关于成功扫描数据更新导航?

转载 作者:行者123 更新时间:2023-12-03 04:46:29 27 4
gpt4 key购买 nike

这是一个小部件,具有每次扫描二维码时触发的功能。

  import 'package:qr_code_scanner/qr_code_scanner.dart';

@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
Expanded(
flex: 4,
child: QRView(
key: qrKey,
onQRViewCreated: _onQRViewCreated,
overlay: QrScannerOverlayShape(
borderColor: Colors.red,
borderRadius: 10,
borderLength: 30,
borderWidth: 10,
cutOutSize: 300,
),
),
),

在功能上,我想导航到下一个屏幕。
  void _onQRViewCreated(QRViewController controller) {
this.controller = controller;
controller.scannedDataStream.listen((scanData) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SecondRoute()),
);
});
}

这里的问题是,监听事件触发多次,是否可以在第一次成功扫描数据后停止此功能?我试试
controller.scannedDataStream.first;

但是当扫描真实数据时返回空字符串并且不会触发。

我需要单击 40 次才能从第二条路线返回以返回到 QR 扫描仪小部件。
谢谢!

最佳答案

为了将来引用,我发现暂停相机效果更好:)

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


SecondPageRoute() async {
controller?.pauseCamera();
var value = await Navigator.push(context,
MaterialPageRoute(builder: (context) {
return SecondPage(qrText);
})).then((value) => controller.resumeCamera());
}

关于Flutter qr_code_scanner 关于成功扫描数据更新导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62184141/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com