Flutter倒计时功能插件date_count_down的使用

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

Flutter倒计时功能插件date_count_down的使用

简介

flutter_countDown 是一个提供现成倒计时功能的Flutter包。它允许开发者轻松地在应用中添加倒计时组件,以增强用户体验。

Screenshoot

使用方法

添加依赖

首先,在你的 pubspec.yaml 文件中添加 date_count_down 作为依赖项:

dependencies:
  flutter:
    sdk: flutter
  date_count_down: ^latest_version # 请替换为最新版本号

然后运行 flutter pub get 来安装这个包。

在Dart文件中引入和使用

接下来,在你的Dart文件中引入 date_count_down 并使用它。以下是一个完整的示例demo,展示了如何创建一个包含两个倒计时文本的小部件:一个默认配置,另一个带有自定义标签。

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

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

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

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('Countdown Timer:'),
            CountDownText(
              due: DateTime.utc(2050), // 设置目标时间(这里设置为2050年)
              finishedText: "Done", // 倒计时结束后显示的文字
              showLabel: true, // 是否显示时间单位标签
              longDateName: true, // 使用完整的时间单位名称
              style: TextStyle(color: Colors.blue), // 文本样式
            ),
            SizedBox(height: 20), // 添加一些间距
            Text('Countdown Timer with custom label:'),
            CountDownText(
              due: DateTime.parse("2050-01-01 00:00:00"), // 目标时间为2050年1月1日午夜
              finishedText: "Done",
              showLabel: true,
              longDateName: true,
              daysTextLong: " DAYS ", // 自定义天数标签
              hoursTextLong: " HOURS ", // 自定义小时数标签
              minutesTextLong: " MINUTES ", // 自定义分钟数标签
              secondsTextLong: " SECONDS ", // 自定义秒数标签
              style: TextStyle(color: Colors.blue),
            )
          ],
        ),
      ),
    );
  }
}

在这个例子中,我们创建了一个简单的Flutter应用程序,其中包含两个倒计时器。第一个倒计时器使用了默认的时间单位标签,而第二个则指定了自定义的时间单位标签。你可以根据需要调整这些参数来满足你的项目需求。

致谢

特别感谢 ekhiw 为该包添加了自定义值的支持。

关注我

如果你喜欢这个插件或者想要了解更多关于Flutter开发的内容,欢迎通过以下方式关注我:

希望这篇帖子能帮助你更好地理解和使用 date_count_down 插件!如果有任何问题或建议,请随时留言交流。


更多关于Flutter倒计时功能插件date_count_down的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter倒计时功能插件date_count_down的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用date_count_down插件来实现倒计时功能的示例代码。这个插件允许你轻松地创建一个倒计时器,显示距离某个特定日期的时间。

首先,确保你已经在pubspec.yaml文件中添加了date_count_down依赖:

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

然后,运行flutter pub get来安装依赖。

接下来,在你的Flutter项目中,你可以按照以下步骤使用DateCountDown组件:

  1. 导入必要的包
import 'package:flutter/material.dart';
import 'package:date_count_down/date_count_down.dart';
  1. 创建倒计时组件

在你的主页面或需要显示倒计时的页面中,使用DateCountDown组件。以下是一个完整的示例代码:

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

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

class CountDownScreen extends StatefulWidget {
  @override
  _CountDownScreenState createState() => _CountDownScreenState();
}

class _CountDownScreenState extends State<CountDownScreen> {
  DateTime targetDate = DateTime(2023, 12, 31, 23, 59, 59);  // 设置你的目标日期和时间

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Count Down Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            DateCountDown(
              targetDateTime: targetDate,
              builder: (BuildContext context, {int days, int hours, int minutes, int seconds}) {
                return Text(
                  '${days}天 ${hours}小时 ${minutes}分钟 ${seconds}秒',
                  style: TextStyle(fontSize: 24),
                );
              },
              onFinish: () {
                // 当倒计时结束时执行的回调
                print('Count down finished!');
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('Count down finished!')),
                );
              },
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中:

  • targetDate 是你希望倒计时到达的目标日期和时间。
  • DateCountDown 组件接收一个targetDateTime参数,以及一个builder函数,用于构建显示倒计时的UI。
  • builder函数接收一个包含天、小时、分钟和秒的Map,并返回一个Widget来显示这些值。
  • onFinish是一个可选的回调,当倒计时结束时会被调用。

运行这个示例代码,你将看到一个简单的倒计时器,显示距离目标日期的时间,并在倒计时结束时显示一个SnackBar通知。

希望这个示例对你有帮助!如果有任何问题,请随时提问。

回到顶部