Flutter 中的 Google Maps Place Picker Package 问题

问题描述

我正在 Flutter 应用程序中实现 google_maps_picker,但我面临一个奇怪的问题,即 FloatCard 结果仅在我按下 getMyLocation 按钮后才显示,否则它只显示 { {1}}。

CircularProgressIndicator

enter image description here

解决方法

iOS 手机 您需要使用 selectedPlaceWidgetBuilder 而不是 onPlacePicked 并在返回前添加此代码:

selectedPlaceWidgetBuilder: (_,selectedPlace,state,isSearchBarFocused) {

   if (Platform.isIOS) {
      if (selectedPlace != null) {
         state = SearchingState.Idle;
      }
   }

   return...
}
,

这应该可以正常工作。我们为 iOS 添加了 selectedPlaceWidgetBuilder 以更新屏幕上搜索到的位置,同时还制作 usePlaceDetailSearch: true

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart';

class MapUi extends StatelessWidget {
  final LatLng location1 = LatLng(37.657,-122.776);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Center(
          child: PlacePicker(
              apiKey: GoogleMap.APIKEY,initialPosition: location1,useCurrentLocation: true,selectInitialPosition: true,usePlaceDetailSearch: true,searchForInitialValue: true,onPlacePicked: (result) {
                print(result.addressComponents);
                Navigator.of(context).pop();
              },selectedPlaceWidgetBuilder:
                  (_,isSearchBarFocused) {
                if (Platform.isIOS) {
                  if (selectedPlace != null) {
                    state = SearchingState.Idle;
                  }
                }

                return Padding(
                  padding: const EdgeInsets.only(top: 80.0,left: 15),child: Text(selectedPlace!.formattedAddress.toString(),style: TextStyle(fontSize: 25)),);
              }),));
  }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...