import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; import 'package:get/get_core/src/get_main.dart'; import 'package:injectable/injectable.dart'; import 'package:location/base/base_controller.dart'; import 'package:sliding_sheet2/sliding_sheet2.dart'; @injectable class CommonPointSelectAddressController extends BaseController { final TextEditingController searchEditController = TextEditingController(); final FocusNode searchFocusNode = FocusNode(); final SheetController sheetController = SheetController(); final RxDouble _commonPointRange = RxDouble(200); double get commonPointRange => _commonPointRange.value; final RxDouble _sheetProgress = 0.0.obs; double get sheetProgress => _sheetProgress.value; void backClick() { if (sheetController.state?.isExpanded == true) { sheetController.snapToExtent(0, duration: const Duration(milliseconds: 250)); return; } Get.back(); } void setCommonPointRange(double value) { _commonPointRange.value = value; } setSheetProgress(double progress) { _sheetProgress.value = progress; if (progress == 1) { _requestFocus(); } } void onOpenSearchAddressModel() async { if (sheetProgress == 0) { _setExpand(); } } void _setExpand() async { await sheetController.snapToExtent(1, duration: const Duration(milliseconds: 250)); _requestFocus(); } void _requestFocus() async { if (searchFocusNode.hasFocus) { return; } //获取焦点 await Future.delayed(Duration(milliseconds: 150)); searchFocusNode.requestFocus(); } }