需要从Google Places API中获取评分数字,而不仅仅是明星



使用Google位置和RatingBarIndicator。然而,一切都在正常工作,除了评级星级之外,我希望将评级数字放在星级的右侧,然而,我在RatingBarIndicator上看到的所有文档都没有显示如何从API获取数字。

places.dart

class Place {
final String name;
final double rating;
final int userRatingCount;
final String vicinity;
final Geometry geometry;
Place(
{this.name,
this.rating,
this.userRatingCount,
this.vicinity,
this.geometry});
Place.fromJson(Map<dynamic,dynamic> parsedJson)
:name = parsedJson['name'],
rating = (parsedJson['rating'] !=null) ? parsedJson['rating'].toDouble() : null,
userRatingCount = (parsedJson['user_rating_total'] != null) ? parsedJson['user_rating_total'] : null,
vicinity = parsedJson['vicinity'],
geometry = Geometry.fromJson(parsedJson['geometry']);
}

Map.dart

Expanded(
child: ListView.builder(
itemCount: places.length,
itemBuilder: (context, index) {
return FutureProvider(
create: (context) =>
geoService.getDistance(
currentPosition.latitude,
currentPosition.longitude,
places[index].geometry.location.lat,
places[index].geometry.location.lat,
),
child: Card(
child: ListTile(
title: Text(places[index].name),
subtitle: Column(children: <Widget>[
(places[index].rating != null) ? Row(children: <Widget>[
RatingBarIndicator(
rating: places[index].rating,
itemBuilder: (context, index) => Icon(Icons.star, color: Colors.amber),
itemCount: 5,
itemSize: 10,
direction: Axis.horizontal,
),
],) : Row(),
Consumer<double>(
builder: (context, meters, widget){
}
),
],),
),
),
);
}),
)

RatingBarIndicator不提供此功能,您可以在指示器的右侧添加一个具有样式的Text小部件来模仿该外观。

最新更新