view.dart 1.6 KB

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