import 'package:cpnav/pages/pass_track/view.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:get/get.dart'; import 'aimPointer.dart'; final SightController controller = Get.put(SightController()); class SightGview extends GetView { const SightGview({super.key}); @override Widget build(BuildContext context) { final Size size = MediaQuery.of(context).size; return Obx(() => Positioned( left: controller.sightOffset.value.dx, top: controller.sightOffset.value.dy, width: size.width / 5 * 1.5, height: size.width / 5 * 1.5, child: GestureDetector( onScaleStart: (details) { // 正确计算初始偏移量:当前手指位置与卡片当前位置之间的差值 controller.sightInit.value = details.localFocalPoint - controller.sightOffset.value; }, onScaleUpdate: (details) { // 使用初始偏移量来更新卡片的位置 controller.sightOffset.value = details.localFocalPoint - controller.sightInit.value; }, child: Visibility( visible: mapcontroller.isCardVisible.value, // 控制可见性 child: Container( decoration: const BoxDecoration(color: Colors.transparent), child: Stack(children: [ const Card( elevation: 5.0, child: SightView(), ), Positioned( right: 0, top: 0, child: IconButton( icon: const Icon(Icons.close), onPressed: () { // 关闭按钮的回调函数 mapcontroller.isCardVisible.value = false; }, ), ), ]), ))))); } }