import 'package:flutter/material.dart'; import 'package:mobile_scanner/mobile_scanner.dart'; class QrScannerScreen extends StatefulWidget { const QrScannerScreen({super.key}); @override State createState() => _QrScannerScreenState(); } class _QrScannerScreenState extends State { final MobileScannerController _scannerController = MobileScannerController( detectionSpeed: DetectionSpeed.normal, facing: CameraFacing.back, ); bool _isScanCompleted = false; @override void dispose() { _scannerController.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("Сканировать QR-код"), backgroundColor: Colors.black, foregroundColor: Colors.white, ), body: Stack( children: [ MobileScanner( controller: _scannerController, onDetect: (capture) { if (!_isScanCompleted) { final String? code = capture.barcodes.first.rawValue; if (code != null) { setState(() => _isScanCompleted = true); Navigator.of(context).pop(code); } } }, ), Center( child: Container( width: 250, height: 250, decoration: BoxDecoration( border: Border.all(color: Colors.white, width: 2), borderRadius: BorderRadius.circular(12), ), ), ), ], ), ); } }