Flutter评分对话框插件slide_rating_dialog的使用

发布于 1周前 作者 vueper 来自 Flutter

Flutter评分对话框插件 slide_rating_dialog 的使用

slide_rating_dialog 是一个用于收集用户反馈和评分的 Flutter 插件。它提供了美观且可定制的滑动评分对话框,支持 iOS 和 Android 平台。

功能特性

  • 滑动评分:用户可以通过滑动手指选择评分。
  • 可定制设计:可以自定义对话框的颜色、图标和文本等外观属性。
  • 回调函数:通过回调函数接收并处理用户的评分。
  • 响应迅速:设计了平滑流畅的动画效果,确保用户交互体验良好。

安装步骤

  1. pubspec.yaml 文件中添加依赖:

    dependencies:
      slide_rating_dialog: <latest version>
    
  2. 运行以下命令获取包:

    flutter pub get
    
  3. 在 Dart 代码中导入包:

    import 'package:slide_rating_dialog/slide_rating_dialog.dart';
    

使用示例

下面是一个完整的示例 Demo,展示了如何在 Flutter 应用中使用 slide_rating_dialog 插件。

示例代码

import 'package:flutter/material.dart';
import 'package:slide_rating_dialog/slide_rating_dialog.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Slide Rating Dialog',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Slide Rating Dialog'),
    );
  }
}

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> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        centerTitle: true,
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            GestureDetector(
              onTap: () {
                showDialog(
                  context: context,
                  barrierDismissible: true,
                  builder: (BuildContext cont) => SlideRatingDialog(
                    onRatingChanged: (rating) {
                      print('User rating: $rating');
                    },
                    buttonOnTap: () {
                      // 执行业务逻辑
                      Navigator.pop(context);
                    },
                    buttonTitle: "Rate Us",
                  ),
                );
              },
              child: Container(
                width: MediaQuery.of(context).size.width * 0.7,
                height: 48.0,
                decoration: BoxDecoration(
                  color: Colors.deepPurpleAccent,
                  borderRadius: BorderRadius.circular(12.0),
                ),
                alignment: Alignment.center,
                child: const Text(
                  "Show Dialog",
                  style: TextStyle(
                    fontSize: 18.0,
                    color: Colors.white,
                    fontWeight: FontWeight.bold,
                  ),
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter评分对话框插件slide_rating_dialog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter评分对话框插件slide_rating_dialog的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何使用 slide_rating_dialog Flutter 插件的代码示例。这个插件允许你在应用中显示一个滑动评分的对话框。

首先,你需要在你的 pubspec.yaml 文件中添加这个依赖:

dependencies:
  flutter:
    sdk: flutter
  slide_rating_dialog: ^x.y.z  # 请将 x.y.z 替换为最新版本号

然后运行 flutter pub get 来获取依赖。

接下来是一个完整的示例代码,展示了如何在 Flutter 应用中使用 slide_rating_dialog 插件:

import 'package:flutter/material.dart';
import 'package:slide_rating_dialog/slide_rating_dialog.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Slide Rating Dialog Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  void showRatingDialog() async {
    final result = await SlideRatingDialog.show(
      context: context,
      title: 'Rate this app',
      description: 'How would you rate our app?',
      positiveButton: Text('Submit'),
      negativeButton: Text('Cancel'),
      initialValue: 3,  // 初始值
      minAllowed: 1,    // 最小值
      maxAllowed: 5,    // 最大值
      stepSize: 0.5,    // 步长
      onRatingComplete: (value) {
        // 用户完成评分后的回调
        print("User rated: $value");
      },
      onRatingCancelled: () {
        // 用户取消评分后的回调
        print("Rating cancelled");
      },
    );

    // result 为 null 表示用户取消了评分
    if (result != null) {
      print("Final rating: $result");
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Slide Rating Dialog Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: showRatingDialog,
          child: Text('Show Rating Dialog'),
        ),
      ),
    );
  }
}

在这个示例中:

  1. 我们首先添加 slide_rating_dialog 依赖到 pubspec.yaml 文件中。
  2. 然后在 MyApp 类的 home 属性中指定 MyHomePage 作为首页。
  3. MyHomePage 类的 build 方法中,我们创建了一个居中的 ElevatedButton,当用户点击按钮时,会调用 showRatingDialog 方法。
  4. showRatingDialog 方法使用 SlideRatingDialog.show 方法来显示评分对话框,并处理用户完成评分或取消评分的回调。

你可以根据需求调整对话框的标题、描述、按钮文本、初始值、最小/最大值和步长等参数。希望这个示例对你有所帮助!

回到顶部