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

1 回复

更多关于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),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们做了以下几件事:

  1. 引入依赖:在文件顶部导入了flutter_rating_null_safe包。
  2. 创建主应用MyApp是一个简单的Material应用,设置了主题并将RatingScreen作为主页。
  3. 创建评分页面RatingScreen是一个有状态的组件,包含一个RatingBar和一个显示当前评分的文本。
  4. 处理评分更新:当用户更改评分时,_submitRating函数会被调用,更新内部状态并打印出新的评分。

这个示例展示了如何使用flutter_rating_null_safe插件来创建一个简单的评分界面。你可以根据需要进一步自定义和扩展这个示例。

回到顶部