问题描述
我正在 Flutter 应用程序中实现 google_maps_picker
,但我面临一个奇怪的问题,即 FloatCard
结果仅在我按下 getMyLocation
按钮后才显示,否则它只显示 { {1}}。
CircularProgressIndicator
解决方法
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)),);
}),));
}
}