Flutter评分动画插件animated_rating_bar的使用
Flutter评分动画插件animated_rating_bar的使用
简介
animated_rating_bar
是一个可定制的评分条插件,支持动画效果,适用于 Flutter 应用程序。
开始使用
添加依赖
在你的 pubspec.yaml
文件中添加以下依赖:
dependencies:
...
animated_rating_bar: ^最新版本
导入库
在你的 Dart 文件中导入以下库:
import 'package:animated_rating_bar/animated_rating_bar.dart';
示例代码
以下是一个简单的示例,展示了如何在 Flutter 应用程序中使用 AnimatedRatingBar
。
完整示例
import 'package:animated_rating_bar/animated_rating_bar.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Animated Rating Bar',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
darkTheme: ThemeData(useMaterial3: true, brightness: Brightness.dark),
home: const RatingScreen(),
);
}
}
class RatingScreen extends StatelessWidget {
const RatingScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: const Text("Animated Rating Bar"),
),
body: Center(
child: AnimatedRatingBar(
activeFillColor: Theme.of(context).colorScheme.inversePrimary,
strokeColor: Colors.green,
initialRating: 0,
height: 60,
width: MediaQuery.of(context).size.width,
animationColor: Colors.red,
onRatingUpdate: (rating) {
debugPrint(rating.toString());
},
),
),
);
}
}
解释
activeFillColor
: 选中的星星的颜色。strokeColor
: 星星的边框颜色。initialRating
: 初始评分值。height
: 评分条的高度。width
: 评分条的宽度。animationColor
: 动画效果的颜色。onRatingUpdate
: 当评分更新时的回调函数,参数为当前的评分值。
特别感谢
许可证
本项目采用 MIT License 发布,由 @codersangam 维护。
贡献
欢迎贡献!请遵循以下步骤:
- Fork 项目 (https://github.com/codersangam/animated_rating_bar/fork)
- 创建功能分支(
git checkout -b feature/fooBar
) - 提交更改(
git commit -am 'Add some fooBar'
) - 推送到分支(
git push origin feature/fooBar
) - 创建新的 Pull Request
希望这个插件能帮助你在 Flutter 应用中实现美观且功能强大的评分条。如果你有任何问题或建议,请随时提交 Issue 或 Pull Request。
更多关于Flutter评分动画插件animated_rating_bar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter评分动画插件animated_rating_bar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter应用中使用animated_rating_bar
插件的一个代码示例。这个插件允许你创建带有动画效果的评分条。
首先,确保你已经在pubspec.yaml
文件中添加了animated_rating_bar
依赖:
dependencies:
flutter:
sdk: flutter
animated_rating_bar: ^latest_version # 请替换为最新的版本号
然后,运行flutter pub get
来获取依赖。
接下来是一个完整的示例代码,展示了如何使用AnimatedRatingBar
:
import 'package:flutter/material.dart';
import 'package:animated_rating_bar/animated_rating_bar.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Animated Rating Bar Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: RatingBarScreen(),
);
}
}
class RatingBarScreen extends StatefulWidget {
@override
_RatingBarScreenState createState() => _RatingBarScreenState();
}
class _RatingBarScreenState extends State<RatingBarScreen> {
double _rating = 3.0;
void _updateRating(double rating) {
setState(() {
_rating = rating;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Animated Rating Bar Example'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
AnimatedRatingBar.builder(
initialRating: _rating,
minRating: 1,
direction: Axis.horizontal,
allowHalfRating: true,
itemCount: 5,
itemBuilder: (context, _) => Icon(
Icons.star,
color: Colors.amber,
),
onRatingUpdate: (rating) => _updateRating(rating),
),
SizedBox(height: 20),
Text(
'Current Rating: $_rating',
style: TextStyle(fontSize: 20),
),
],
),
),
);
}
}
代码解释
-
依赖导入:
import 'package:animated_rating_bar/animated_rating_bar.dart';
-
主应用:
void main() { runApp(MyApp()); }
-
应用主题和主页:
class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Animated Rating Bar Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: RatingBarScreen(), ); } }
-
评分条屏幕:
- 创建一个状态类
_RatingBarScreenState
来管理评分状态。 _updateRating
方法用于更新当前评分。- 使用
AnimatedRatingBar.builder
构建评分条,并设置初始评分、最小评分、方向、是否允许半星评分、图标数量以及图标构建器。 onRatingUpdate
回调用于处理评分更新。
- 创建一个状态类
class RatingBarScreen extends StatefulWidget {
@override
_RatingBarScreenState createState() => _RatingBarScreenState();
}
class _RatingBarScreenState extends State<RatingBarScreen> {
double _rating = 3.0;
void _updateRating(double rating) {
setState(() {
_rating = rating;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Animated Rating Bar Example'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
AnimatedRatingBar.builder(
initialRating: _rating,
minRating: 1,
direction: Axis.horizontal,
allowHalfRating: true,
itemCount: 5,
itemBuilder: (context, _) => Icon(
Icons.star,
color: Colors.amber,
),
onRatingUpdate: (rating) => _updateRating(rating),
),
SizedBox(height: 20),
Text(
'Current Rating: $_rating',
style: TextStyle(fontSize: 20),
),
],
),
),
);
}
}
这段代码展示了如何使用animated_rating_bar
插件来创建一个具有动画效果的评分条,并实时更新评分值。你可以根据需要进一步自定义评分条的样式和行为。