Я получаю широту и долготу из rest api и мне приходится преобразовывать в адрес каждый раз, когда список загружается, но я получаю «Future» не является подтипом типа «String» Flutter . Я также пытался добавить FutureBuilder . Как решить эту проблему? Я новичок ie в дрожании.
body: Container(
child: Center(
child: FutureBuilder(
builder: (context, snapshot) {
return ListView.builder(
physics: const AlwaysScrollableScrollPhysics(),
itemCount:
_getAttendanceLog == null ? 0 : _getAttendanceLog.length,
itemBuilder: (BuildContext context, int index) {
final item = _getAttendanceLog[index];
return card(
child: Column(
children: <Widget>[
new Container(
child: Column(
children: <Widget>[
if(item.startlattitude == 'null'|| item.startlattitude == null||item.startlongitude == 'null'|| item.startlongitude == null) ...[
new Text("In Location : -", style: TextStyle(fontSize: SizeConfig.safeBlockHorizontal*3),)
]else ...[
Marquee(
child: Text("In Location : " + getUserLocation(item.startlattitude, item.startlongitude),style: TextStyle(fontSize: SizeConfig.safeBlockHorizontal*3),),
directionMarguee: DirectionMarguee.oneDirection,
),SizeConfig.safeBlockHorizontal*3),),
]
],
),
),
])
)
, и я использовал Geocoder, также см. Ниже ======> getUserLocation
getUserLocation(startlat, startlong) async {
final coordinates = new Coordinates(
startlat, startlong);
var addresses = await Geocoder.local.findAddressesFromCoordinates(
coordinates);
finalInLocation = addresses.first;
print(' ${finalInLocation.locality}, ${finalInLocation.adminArea},${finalInLocation.subLocality}, ${finalInLocation.subAdminArea},${finalInLocation.addressLine}, ${finalInLocation.featureName},${finalInLocation.thoroughfare}, ${finalInLocation.subThoroughfare}');
return finalInLocation;
}
Мне вот так: введите описание изображения здесь