view.dart 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import 'package:date_format/date_format.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:get/get.dart';
  4. import 'index.dart';
  5. class CardReaderDialog extends GetView<CardReaderController> {
  6. const CardReaderDialog({Key? key}) : super(key: key);
  7. // 主视图
  8. Widget _buildView() {
  9. const designWidth = 1280.0; // 设计尺寸宽度:1280
  10. final width = Get.width;
  11. final scale = width / designWidth; // 计算缩放比例
  12. return Container(
  13. width: Get.width * 0.6 / scale,
  14. height: Get.height * 0.6 / scale,
  15. decoration: BoxDecoration(
  16. color: Colors.white,
  17. borderRadius: BorderRadius.circular(10),
  18. ),
  19. child: Column(
  20. children: [
  21. _buildHead(),
  22. // const Expanded(child: NoCardReaderView()),
  23. Expanded(
  24. child: controller.isCardReaderConnected
  25. ? const CardReaderView()
  26. : const NoCardReaderView()),
  27. ],
  28. ),
  29. );
  30. }
  31. @override
  32. Widget build(BuildContext context) {
  33. return GetBuilder<CardReaderController>(
  34. init: CardReaderController(),
  35. id: "card_reader",
  36. builder: (_) {
  37. return Dialog(
  38. child: _buildView(),
  39. );
  40. },
  41. );
  42. }
  43. /// 构建弹窗顶部,右侧显示关闭按钮
  44. Widget _buildHead() {
  45. return SizedBox(
  46. height: 50,
  47. child: Row(
  48. mainAxisAlignment: MainAxisAlignment.end,
  49. children: [
  50. IconButton(
  51. onPressed: () => Get.back(),
  52. icon: const Icon(
  53. Icons.close,
  54. size: 30,
  55. ),
  56. ),
  57. ],
  58. ),
  59. );
  60. }
  61. }