在Flutter中实现评价插件,推荐以下几种方式:
1. 使用第三方插件(推荐)
星级评价插件
// 在pubspec.yaml中添加
// flutter_rating_bar: ^4.0.1
import 'package:flutter_rating_bar/flutter_rating_bar.dart';
RatingBar.builder(
initialRating: 3,
minRating: 1,
direction: Axis.horizontal,
allowHalfRating: true,
itemCount: 5,
itemPadding: EdgeInsets.symmetric(horizontal: 4.0),
itemBuilder: (context, _) => Icon(
Icons.star,
color: Colors.amber,
),
onRatingUpdate: (rating) {
print(rating);
},
)
平滑评分插件
// smooth_star_rating: ^0.0.6
SmoothStarRating(
rating: 4.5,
size: 40,
filledIconData: Icons.star,
halfFilledIconData: Icons.star_half,
defaultIconData: Icons.star_border,
starCount: 5,
allowHalfRating: true,
onRatingChanged: (value) {
print(value);
},
)
2. 自定义实现
class CustomRatingBar extends StatefulWidget {
@override
_CustomRatingBarState createState() => _CustomRatingBarState();
}
class _CustomRatingBarState extends State<CustomRatingBar> {
double _rating = 0;
@override
Widget build(BuildContext context) {
return Row(
mainAxisAlignment: MainAxisAlignment.center,
children: List.generate(5, (index) {
return GestureDetector(
onTap: () {
setState(() {
_rating = index + 1.0;
});
},
child: Icon(
index < _rating.floor() ? Icons.star : Icons.star_border,
color: Colors.amber,
size: 40,
),
);
}),
);
}
}
3. 应用商店评价
// 使用store_redirect插件
// store_redirect: ^2.0.0
import 'package:store_redirect/store_redirect.dart';
// 跳转到应用商店评价
StoreRedirect.redirect(
androidAppId: "com.example.app",
iOSAppId: "123456789",
);
推荐方案
对于大多数应用,建议使用 flutter_rating_bar 插件,它功能完善、支持半星评分、自定义图标和动画效果。如果需要更简单的实现,可以选择自定义方案。
选择哪种方式取决于你的具体需求:星级评价、表情评价还是其他形式的评价系统。