You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.4KB

  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. import 'package:qr_code_scanner/qr_code_scanner.dart';
  4. import 'cubit/scan_qr_code_cubit.dart';
  5. class ScanQRCodeSPage extends StatefulWidget {
  6. ScanQRCodeSPage({
  7. Key? key,
  8. }) : super(key: key);
  9. @override
  10. State<ScanQRCodeSPage> createState() => _ScanQRCodeSPageState();
  11. }
  12. class _ScanQRCodeSPageState extends State<ScanQRCodeSPage> {
  13. var bloc = ScanQrCodeCubit();
  14. @override
  15. void initState() {
  16. super.initState();
  17. bloc.init();
  18. }
  19. @override
  20. void dispose() {
  21. super.dispose();
  22. bloc.dispose();
  23. }
  24. @override
  25. Widget build(BuildContext context) {
  26. bloc.context = context;
  27. return Scaffold(
  28. body: Column(
  29. children: [
  30. Expanded(
  31. child: Stack(
  32. children: [
  33. QRView(
  34. key: bloc.qrKey,
  35. onQRViewCreated: bloc.onQRViewCreated,
  36. overlay: QrScannerOverlayShape(
  37. borderColor: Colors.grey.shade300,
  38. borderRadius: 16.0,
  39. borderWidth: 4.0,
  40. cutOutSize: Get.width / 3 * 2,
  41. ),
  42. ),
  43. Column(
  44. crossAxisAlignment: CrossAxisAlignment.start,
  45. children: [
  46. SizedBox(height: MediaQuery.of(context).padding.top + 20.0),
  47. // Padding(
  48. // padding: EdgeInsets.only(left: 20.0),
  49. // child: AppButton(
  50. // width: 48.0.sp,
  51. // height: 48.0.sp,
  52. // outlinedBorder: RoundedRectangleBorder(
  53. // borderRadius: BorderRadius.circular(26.0.sp),
  54. // ),
  55. // onPressed: Get.back,
  56. // backgroundColor: (ThemeConstants.appColors[ColorConstants.gray900] as Color).withOpacity(0.4),
  57. // rightWidget: AppSvg24px(
  58. // AppImages.basicClose,
  59. // color: ThemeConstants.appColors[ColorConstants.white],
  60. // ),
  61. // ),
  62. // ),
  63. ],
  64. ),
  65. // Obx(() => bloc.isLoading.value ? const AppLoading() : const SizedBox.shrink()),
  66. ],
  67. ),
  68. ),
  69. ],
  70. ),
  71. );
  72. }
  73. }