【问题标题】:Flutter: close scanner after scan successFlutter:扫描成功后关闭扫描仪
【发布时间】:2020-01-22 04:09:06
【问题描述】:

我使用flutter_barcode_scanner扫描条码或二维码,但扫描成功后不知道如何关闭扫描画面,请帮忙。

谢谢,

发霉

【问题讨论】:

  • 先显示你的代码。
  • 您好,您无法关闭它。但你可以做的是添加一个控制器,例如 StringbarcodeResult;在您的小部件中执行类似barcodeResult == null 的操作? showBarcode() : showSomethingElse()。 barcodeResult 是你的控制器。

标签: flutter flutter-dependencies


【解决方案1】:

它在使用 async 和 future 的演示中清楚地显示出来。

Future<void> scanQR() async {
    String barcodeScanRes;
    // Platform messages may fail, so we use a try/catch PlatformException.
    try {
      barcodeScanRes = await FlutterBarcodeScanner.scanBarcode(
          "#ff6666", "Cancel", true, ScanMode.QR);
      print(barcodeScanRes);
    } on PlatformException {
      barcodeScanRes = 'Failed to get platform version.';
    }

【讨论】:

    【解决方案2】:

    这是我在成功扫描后用来停止 QR 扫描仪的方法

      void _onQRViewCreated(QRViewController controller) {
       this.controller = controller;
        controller.scannedDataStream.listen((scanData) {
          controller.pauseCamera(); //====> pause camera once scan is done
          setState(() {
            result = scanData;            
            print(scanData.code);     
            //Navigate other page if you want
            Navigator.pushReplacement(
              context,
              MaterialPageRoute(
                builder: (BuildContext context) => const ScannedResult(),
              ),
            );
          });
         });
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 2015-03-19
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多