Flutter评分插件flutter_rating_null_safe的使用
Flutter评分插件flutter_rating_null_safe的使用
一个用于以美观方式展示评分的Flutter插件。它高度可定制且易于使用。该插件受到Flutter Rating的启发,但后者目前未启用null安全且维护者不再更新该包。
注意:此插件仍在开发中,任何想为该项目做贡献的人都非常欢迎。如果您有任何想法或建议,请随时联系我。
特性
- ✅ 支持null安全
- ✅ 易于使用
- ✅ 高度可定制
- ✅ 同时支持Android和iOS
- ✅ 同时支持水平和垂直方向
- ✅ 同时支持全星和半星评分
开始使用
你只需要在pubspec.yaml
文件中添加依赖项。
dependencies:
flutter:
sdk: flutter
flutter_rating_null_safe: ^0.0.3
使用方法
在你的Dart代码中添加以下导入:
import 'package:flutter_rating_null_safe/flutter_rating_null_safe.dart';
然后只需使用以下代码:
FlutterRatings(
rating: 3.5,
starCount: 5,
borderColor: Colors.grey,
color: Colors.amber,
allowHalfRating: true,
size: 20,
mainAxisAlignment: MainAxisAlignment.center,
onRatingChanged: (rating) {
print(rating);
},
),
示例代码
下面是完整的示例代码,展示了如何在应用中使用flutter_rating_null_safe
插件。
import 'package:flutter/material.dart';
// ignore: depend_on_referenced_packages
import 'package:flutter_rating_null_safe/flutter_rating_null_safe.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Ratings',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Flutter Ratings'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
double appRating = 3.5;
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'App Rating: $appRating',
style: const TextStyle(
fontSize: 30,
),
),
const SizedBox(height: 30),
FlutterRating(
size: 40,
starCount: 5,
rating: appRating,
allowHalfRating: true,
color: Colors.amber,
borderColor: Colors.grey,
mainAxisAlignment: MainAxisAlignment.center,
onRatingChanged: (double rating) {
setState(() {
appRating = rating;
});
},
),
],
),
);
}
}
更多关于Flutter评分插件flutter_rating_null_safe的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter评分插件flutter_rating_null_safe的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用flutter_rating_null_safe
插件的一个示例代码案例。这个插件允许你在应用中添加评分功能。首先,你需要确保已经在pubspec.yaml
文件中添加了依赖项:
dependencies:
flutter:
sdk: flutter
flutter_rating_null_safe: ^x.y.z # 请替换为最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,你可以在你的Flutter应用中使用这个插件。以下是一个简单的示例,展示如何在应用中添加一个评分组件:
import 'package:flutter/material.dart';
import 'package:flutter_rating_null_safe/flutter_rating_bar.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Rating Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: RatingScreen(),
);
}
}
class RatingScreen extends StatefulWidget {
@override
_RatingScreenState createState() => _RatingScreenState();
}
class _RatingScreenState extends State<RatingScreen> {
double _rating = 0.0;
void _submitRating(double rating) {
setState(() {
_rating = rating;
});
// 这里可以添加提交评分的逻辑,比如发送到服务器
print("User rated: $_rating");
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Rating Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
RatingBar(
initialRating: _rating,
minRating: 1,
direction: Axis.horizontal,
allowHalfRating: true,
itemCount: 5,
itemSize: 40.0,
itemPadding: EdgeInsets.symmetric(horizontal: 4.0),
onRatingUpdate: (double rating) => _submitRating(rating),
),
SizedBox(height: 20),
Text(
'Your Rating: $_rating',
style: TextStyle(fontSize: 20),
),
],
),
),
);
}
}
在这个示例中,我们做了以下几件事:
- 引入依赖:在文件顶部导入了
flutter_rating_null_safe
包。 - 创建主应用:
MyApp
是一个简单的Material应用,设置了主题并将RatingScreen
作为主页。 - 创建评分页面:
RatingScreen
是一个有状态的组件,包含一个RatingBar
和一个显示当前评分的文本。 - 处理评分更新:当用户更改评分时,
_submitRating
函数会被调用,更新内部状态并打印出新的评分。
这个示例展示了如何使用flutter_rating_null_safe
插件来创建一个简单的评分界面。你可以根据需要进一步自定义和扩展这个示例。