42 lines
1.2 KiB
Dart
42 lines
1.2 KiB
Dart
import 'package:animated_rating_stars/animated_rating_stars.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
class StarWidget extends StatelessWidget {
|
|
final double maxRating;
|
|
final double starSize;
|
|
final bool readOnly;
|
|
const StarWidget({
|
|
super.key,
|
|
required this.maxRating,
|
|
required this.starSize,
|
|
required this.readOnly,
|
|
});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return AnimatedRatingStars(
|
|
initialRating: 1,
|
|
minRating: 0,
|
|
maxRating: maxRating,
|
|
filledColor: Colors.amber,
|
|
emptyColor: Colors.grey,
|
|
filledIcon: Icons.star_border_rounded,
|
|
halfFilledIcon: Icons.star_half_rounded,
|
|
emptyIcon: Icons.star_border_rounded,
|
|
onChanged: (double rating) {
|
|
// Handle the rating change here
|
|
print('Rating: $rating');
|
|
},
|
|
displayRatingValue: true,
|
|
interactiveTooltips: true,
|
|
customFilledIcon: Icons.star_border_rounded,
|
|
customHalfFilledIcon: Icons.star_half_rounded,
|
|
customEmptyIcon: Icons.star_border_rounded,
|
|
starSize: starSize,
|
|
animationDuration: const Duration(milliseconds: 300),
|
|
animationCurve: Curves.easeInOut,
|
|
readOnly: readOnly,
|
|
);
|
|
}
|
|
}
|