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

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

Countdown - yet another countdown !!

Countdown 是一个带有暂停/恢复控制功能的倒计时插件。

Simple use

Use with controls

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

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: CountdownExample(),
    );
  }
}

class CountdownExample extends StatefulWidget {
  @override
  _CountdownExampleState createState() => _CountdownExampleState();
}

class _CountdownExampleState extends State<CountdownExample> {
  late CountDownController _controller;

  @override
  void initState() {
    super.initState();
    _controller = CountDownController(); // 初始化控制器
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('倒计时插件示例'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            AppCountdown(
              autoStart: true, // 自动开始倒计时
              onResend: () {
                return Future.delayed(Duration.zero); // 点击重发时的回调
              },
              colorTimerStart: Colors.black, // 倒计时开始时的文本颜色
              colorTimerEnd: Colors.white, // 倒计时结束时的文本颜色
              controller: _controller, // 使用自定义控制器
              textResend: Text('重发'), // 重发按钮的文字
            ),
            SizedBox(height: 20),
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: [
                ElevatedButton(
                  onPressed: () {
                    _controller.start(); // 手动启动倒计时
                  },
                  child: Text('开始'),
                ),
                ElevatedButton(
                  onPressed: () {
                    _controller.pause(); // 暂停倒计时
                  },
                  child: Text('暂停'),
                ),
                ElevatedButton(
                  onPressed: () {
                    _controller.resume(); // 恢复倒计时
                  },
                  child: Text('继续'),
                ),
                ElevatedButton(
                  onPressed: () {
                    _controller.restart(); // 重新开始倒计时
                  },
                  child: Text('重新开始'),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

说明

  1. 导入插件

    import 'package:countdown_timer/countdown_timer.dart';
    
  2. 初始化控制器

    CountDownController _controller;
    
  3. 使用 AppCountdown 组件

    AppCountdown(
      autoStart: true, // 是否自动开始倒计时
      onResend: () {
        return Future.delayed(Duration.zero); // 点击重发时的回调
      },
      colorTimerStart: Colors.black, // 倒计时开始时的文本颜色
      colorTimerEnd: Colors.white, // 倒计时结束时的文本颜色
      controller: _controller, // 使用自定义控制器
      textResend: Text('重发'), // 重发按钮的文字
    )
    
  4. 添加控制按钮

    ElevatedButton(
      onPressed: () {
        _controller.start(); // 手动启动倒计时
      },
      child: Text('开始'),
    ),
    ElevatedButton(
      onPressed: () {
        _controller.pause(); // 暂停倒计时
      },
      child: Text('暂停'),
    ),
    ElevatedButton(
      onPressed: () {
        _controller.resume(); // 恢复倒计时
      },
      child: Text('继续'),
    ),
    ElevatedButton(
      onPressed: () {
        _controller.restart(); // 重新开始倒计时
      },
      child: Text('重新开始'),
    ),
    

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

1 回复

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


quanht_countdown_timer 是一个 Flutter 插件,用于实现倒计时功能。它支持自定义倒计时的样式和行为,并且使用起来非常简单。以下是如何使用 quanht_countdown_timer 插件的步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  quanht_countdown_timer: ^1.0.0  # 请使用最新版本

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

2. 导入插件

在你的 Dart 文件中导入 quanht_countdown_timer 插件:

import 'package:quanht_countdown_timer/quanht_countdown_timer.dart';

3. 使用 QuanHTCountdownTimer

QuanHTCountdownTimer 是一个小部件,你可以将它添加到你的 UI 中。以下是一个简单的示例:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: CountdownTimerExample(),
    );
  }
}

class CountdownTimerExample extends StatefulWidget {
  [@override](/user/override)
  _CountdownTimerExampleState createState() => _CountdownTimerExampleState();
}

class _CountdownTimerExampleState extends State<CountdownTimerExample> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('QuanHT Countdown Timer Example'),
      ),
      body: Center(
        child: QuanHTCountdownTimer(
          duration: Duration(seconds: 60),  // 设置倒计时时间为60秒
          onFinished: () {
            // 倒计时结束时执行的操作
            print('Countdown finished!');
          },
          builder: (BuildContext context, Duration remaining) {
            // 自定义倒计时显示样式
            return Text(
              '${remaining.inSeconds} seconds remaining',
              style: TextStyle(fontSize: 24),
            );
          },
        ),
      ),
    );
  }
}

4. 参数说明

  • duration: 倒计时的总时长,类型为 Duration
  • onFinished: 倒计时结束时执行的回调函数。
  • builder: 用于自定义倒计时显示样式的小部件构建函数,参数为 BuildContextDuration(表示剩余的时长)。

5. 其他功能

quanht_countdown_timer 还支持更多自定义功能,例如:

  • 暂停和恢复倒计时:可以使用 QuanHTCountdownController 来控制倒计时的暂停和恢复。
  • 自定义显示格式:你可以在 builder 函数中自定义倒计时的显示格式。

以下是一个使用 QuanHTCountdownController 的示例:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: CountdownTimerExample(),
    );
  }
}

class CountdownTimerExample extends StatefulWidget {
  [@override](/user/override)
  _CountdownTimerExampleState createState() => _CountdownTimerExampleState();
}

class _CountdownTimerExampleState extends State<CountdownTimerExample> {
  QuanHTCountdownController _controller = QuanHTCountdownController();

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('QuanHT Countdown Timer Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            QuanHTCountdownTimer(
              controller: _controller,
              duration: Duration(seconds: 60),
              onFinished: () {
                print('Countdown finished!');
              },
              builder: (BuildContext context, Duration remaining) {
                return Text(
                  '${remaining.inSeconds} seconds remaining',
                  style: TextStyle(fontSize: 24),
                );
              },
            ),
            SizedBox(height: 20),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                ElevatedButton(
                  onPressed: () {
                    _controller.start();  // 开始或恢复倒计时
                  },
                  child: Text('Start'),
                ),
                SizedBox(width: 20),
                ElevatedButton(
                  onPressed: () {
                    _controller.pause();  // 暂停倒计时
                  },
                  child: Text('Pause'),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部