import 'package:flutter/material.dart'; import 'package:mobile_scanner/mobile_scanner.dart'; class QRCodeScannerScreen extends StatefulWidget { const QRCodeScannerScreen({super.key}); @override _QRCodeScannerScreenState createState() => _QRCodeScannerScreenState(); } class _QRCodeScannerScreenState extends State { MobileScannerController cameraController = MobileScannerController(); bool _flashEnabled = false; @override void dispose() { cameraController.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Scan QR Code'), actions: [ IconButton( icon: Icon(_flashEnabled ? Icons.flash_on : Icons.flash_off), onPressed: () { setState(() { _flashEnabled = !_flashEnabled; cameraController.toggleTorch(); }); }, ), IconButton( icon: const Icon(Icons.flip_camera_ios), onPressed: () => cameraController.switchCamera(), ), ], ), body: MobileScanner( controller: cameraController, onDetect: (capture) { final List barcodes = capture.barcodes; if (barcodes.isNotEmpty) { // Return the first barcode value final String? code = barcodes.first.rawValue; if (code != null) { Navigator.pop(context, code); } } }, ), ); } }