小工具知识网

当前位置: 首页 > 行业知识 > 【Flutter】实现按钮点击后显示一个60秒的倒计时效果

行业知识

【Flutter】实现按钮点击后显示一个60秒的倒计时效果

2026-11-02 13:33:48 来源:互联网转载

要实���按钮点击后显示一个60秒的倒计时效果,可以结合使用Flutter的Timer类和setState方法来更新按钮的文本内容。

()

以下是示例代码:

import 'package:flutter/material.dart';import 'dart:async';void main() {  runApp(MyApp());}class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return MaterialApp(      home: MyHomePage(),    );  }}class MyHomePage extends StatefulWidget {  @override  _MyHomePageState createState() => _MyHomePageState();}class _MyHomePageState extends State {  String _buttonText = 'Click Me';  bool _buttonEnabled = true;  void _startCountdown() {    setState(() {      _buttonEnabled = false;      _buttonText = '60s'; // 初始文本为60s    });    int count = 60;    Timer.periodic(Duration(seconds: 1), (timer) {      setState(() {        count--;        if (count > 0) {          _buttonText = '$count s'; // 更新按钮文本为倒计时数字        } else {          _buttonText = 'Click Me';          _buttonEnabled = true;          timer.cancel(); // 取消定时器        }      });    });  }  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        title: Text('Countdown Button Example'),      ),      body: Center(        child: ElevatedButton(          onPressed: _buttonEnabled ? _startCountdown : null,          child: Text(_buttonText),        ),      ),    );  }}

在这个示例中,当用户点击按钮后,按钮的文本会显示60秒的倒计时,每秒更新一次。倒计时结束后按钮文本会恢复为"Click Me",按钮恢复可点击状态。

()

这段代码利用了Timer.periodic来实现每秒更新按钮文本的功能。

上一篇:git服务器怎么管理?

下一篇:头条怎么视频编辑打字?