common_point_select_address_controller.dart 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:get/get.dart';
  3. import 'package:get/get_core/src/get_main.dart';
  4. import 'package:injectable/injectable.dart';
  5. import 'package:location/base/base_controller.dart';
  6. import 'package:sliding_sheet2/sliding_sheet2.dart';
  7. @injectable
  8. class CommonPointSelectAddressController extends BaseController {
  9. final TextEditingController searchEditController = TextEditingController();
  10. final FocusNode searchFocusNode = FocusNode();
  11. final SheetController sheetController = SheetController();
  12. final RxDouble _commonPointRange = RxDouble(200);
  13. double get commonPointRange => _commonPointRange.value;
  14. final RxDouble _sheetProgress = 0.0.obs;
  15. double get sheetProgress => _sheetProgress.value;
  16. void backClick() {
  17. if (sheetController.state?.isExpanded == true) {
  18. sheetController.snapToExtent(0,
  19. duration: const Duration(milliseconds: 250));
  20. return;
  21. }
  22. Get.back();
  23. }
  24. void setCommonPointRange(double value) {
  25. _commonPointRange.value = value;
  26. }
  27. setSheetProgress(double progress) {
  28. _sheetProgress.value = progress;
  29. if (progress == 1) {
  30. _requestFocus();
  31. }
  32. }
  33. void onOpenSearchAddressModel() async {
  34. if (sheetProgress == 0) {
  35. _setExpand();
  36. }
  37. }
  38. void _setExpand() async {
  39. await sheetController.snapToExtent(1,
  40. duration: const Duration(milliseconds: 250));
  41. _requestFocus();
  42. }
  43. void _requestFocus() async {
  44. if (searchFocusNode.hasFocus) {
  45. return;
  46. }
  47. //获取焦点
  48. await Future.delayed(Duration(milliseconds: 150));
  49. searchFocusNode.requestFocus();
  50. }
  51. }