当前位置: 首页 > news >正文

Flutter实现倒计时功能,秒数转时分秒,然后倒计时

Flutter实现倒计时功能
发布时间:2023/05/12
本文实例为大家分享了Flutter实现倒计时功能的具体代码,供大家参考,具体内容如下

有一个需求,需要在页面进行显示倒计时,倒计时结束后,做相应的逻辑处理。

实现思路:在Flutter中,Timer.periodic提供了循环功能,查看函数定义:

factory Timer.periodic(Duration duration, void callback(Timer timer))

第一个参数就是时间间隔,第二个参数就是事件处理回调。

由于后台返回的是秒数,所以需要根据总秒数计算小时,分钟,秒。同时,当不满一个小时时,只显示分钟和秒数,当分钟和秒数只有一个数时(比如1分8秒,显示为01:08)前面加“0”处理。

完整代码:

import 'package:flutter/material.dart';
import 'dart:async';class CounterDownPage extends StatefulWidget {@override_CounterDownPageState createState() => _CounterDownPageState();
}class _CounterDownPageState extends State<CounterDownPage> {// 用来在布局中显示相应的剩余时间String remainTimeStr = '';Timer _timer;//倒计时 void startCountDown(int time) {// 重新计时的时候要把之前的清除掉if (_timer != null) {if (_timer.isActive) {_timer.cancel();_timer = null;}}if (time <= 0) {return;}var countTime = time;const repeatPeriod = const Duration(seconds: 1);_timer = Timer.periodic(repeatPeriod, (timer) { if (countTime <= 0) {timer.cancel();timer = null;//待付款倒计时结束,可以在这里做相应的操作return;}countTime--;//外面传进来的单位是秒,所以需要根据总秒数,计算小时,分钟,秒int hour = (countTime ~/ 3600) % 24;//如果不止24小时的就不用%24int minute = countTime % 3600 ~/60;int second = countTime % 60;var str = '';if (hour > 0) {str = str + hour.toString()+':';}if (minute / 10 < 1) {//当只有个位数时,给前面加“0”,实现效果:“:01”,":02"str = str + '0' + minute.toString() + ":";} else {str = str + minute.toString() + ":";}if (second / 10 < 1) {str = str + '0' + second.toString();} else {str = str + second.toString();}setState(() {remainTimeStr = str;});});}@overridevoid initState() {super.initState();//开始倒计时,这里传入的是秒数startCountDown(5000);}@overridevoid dispose() {super.dispose();if (_timer != null) {if (_timer.isActive) {_timer.cancel();_timer = null;}}}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("倒计时"),),body: Center(child: Row(mainAxisAlignment: MainAxisAlignment.center,children: [Text("剩余", style: TextStyle(fontSize: 18,color: Color.fromRGBO(255, 111, 50, 1),fontWeight: FontWeight.bold),),Text(remainTimeStr.length > 0 ? remainTimeStr: "--", style: TextStyle(fontSize: 18,color: Color.fromRGBO(255, 111, 50, 1),fontWeight: FontWeight.bold),),],),),);}
}

在这里插入图片描述
服务器返回的时间戳87392,现在的时间戳+87392 现在的时间戳,两者的时间戳相差二十多个小时,也就是说87392就是秒数,直接传秒数到上面的startCountDown方法即可。

相关文章:

Flutter实现倒计时功能,秒数转时分秒,然后倒计时

Flutter实现倒计时功能 发布时间&#xff1a;2023/05/12 本文实例为大家分享了Flutter实现倒计时功能的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 有一个需求&#xff0c;需要在页面进行显示倒计时&#xff0c;倒计时结束后&#xff0c;做相应的逻辑处理。 实…...

【hadoop】windows上hadoop环境的搭建步骤

文章目录 前言基础环境下载hadoop安装包下载hadoop在windows中的依赖配置环境变量 Hadoop hdfs搭建创建hadfs数据目录修改JAVA依赖修改配置文件初始化hdfs namenode启动hdfs 前言 在大数据开发领域中&#xff0c;不得不说说传统经典的hadoop基础计算框架。一般我们都会将hadoo…...

一周在榜9本计算机专业新书

本周在榜计算机专业新书9本。 1、扩散模型从原理到实战 开启AI绘画新时代&#xff01;AIGC大模型来临&#xff0c;配套赠送Diffusion视频课程&#xff01; HuggingFace平台学习实战&#xff0c;常春藤盟校数据科学硕士与算法工程师带你从理论到实战&#xff0c;了解、掌握扩散…...

CSS变形与动画(二):perspctive透视效果 与 preserve-3d 3d效果(奥运五环例子)

文章目录 perspective 3d透视效果preserve-3d 3d嵌套效果例子 奥运五环 backface-visibility 背面效果 perspective 3d透视效果 perspective 指定了观察者与 z0 平面的距离&#xff0c;使具有三维位置变换的元素产生透视效果。z>0 的三维元素比正常大&#xff0c;而 z<0 …...

[论文笔记]Glancing Transformer for Non-Autoregressive Neural Machine Translation

引言 这是论文Glancing Transformer for Non-Autoregressive Neural Machine Translation的笔记。 传统的非自回归文本生成速度较慢,因为需要给定之前的token来预测下一个token。但自回归模型虽然效率高,但性能没那么好。 这篇论文提出了Glancing Transformer,可以只需要一…...

视觉学习(七)---Flask 框架下接口调用及python requests 实现json字符串传输

在项目实施过程中需要与其他系统进行接口联调&#xff0c;将图像检测的结果传递给其他系统接口&#xff0c;进行逻辑调用。这中间的过程可以通过requests库进行实现。 1.安装requests库 pip install requests2.postman 接口测试 我们先通过postman 了解下接口调用&#xff0…...

unity编写树形结构的文件管理页面

项目中需要实现点击“”按钮展开对应分类下的所有训练科目&#xff0c;再次点击“–”按钮将对应分类下的训练科目隐藏并收起整个面板。对此&#xff0c;编写一个类&#xff0c;将其挂载到树形结构的父类上&#xff0c;代码如下&#xff1a; using UnityEngine; using UnityEn…...

基于单片机的家用智能浇灌系统

1、开发环境 keil5&#xff0c;STM32CubeMX、Altium Designer 2、硬件清单 单片机&#xff1a;STM32F051K8Ux 土壤湿度传感器&#xff1a;TL - 69 温度传感器&#xff1a;DS18B20&#xff08;数字传感器直接输出数字信号&#xff09; OLED屏幕&#xff1a;OLED12864、 水…...

Solr的入门使用

Solr是Apache下的一个顶级开源项目&#xff0c;采用Java开发&#xff0c;它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言&#xff0c;同时实现了可配置、可扩展&#xff0c;并对索引、搜索性能进行了优化&#xff0c;被很多需要搜索的网站中广泛使用。…...

css鼠标样式 cursor: pointer

cursor: none; cursor:not-allowed; 禁止选择 user-select: none; pointer-events:none;禁止触发事件, 该样式会阻止默认事件的发生&#xff0c;但鼠标样式会变成箭头...

【解决】Kafka Exception thrown when sending a message with key=‘null‘ 异常

问题原因&#xff1a; 如下图&#xff0c;kafka 中配置的是监听域名的方式&#xff0c;但程序里使用的是 ip:port 的连接方式。 解决办法&#xff1a; kafka 中配置的是域名的方式&#xff0c;程序里也相应配置成 域名:port 的方式&#xff08;注意&#xff1a;本地h…...

中心极限定理 简明教程

中心极限定理是概率论中的一组定理&#xff0c;它们描述了一些独立随机变量的和或平均值的分布在一定条件下趋近于正态分布的现象。中心极限定理有多种形式&#xff0c;其中最常见的是独立同分布的中心极限定理&#xff0c;它可以用数学公式表示为&#xff1a; 前提条件&#x…...

商城-学习整理-基础-库存系统(八)

一、整合ware服务 1、配置注册中心 2、配置配置中心 3、配置网关&#xff0c;重启网关 二、仓库维护 http://localhost:8001/#/ware-wareinfo 在前端项目module中创建ware文件夹保存仓库系统的代码。 将生成的wareinfo.vue文件拷贝到项目中。 根据功能&#xff0c;修改后台接…...

【C++ 学习 ⑬】- 详解 list 容器

目录 一、list 容器的基本介绍 二、list 容器的成员函数 2.1 - 迭代器 2.2 - 修改操作 三、list 的模拟实现 3.1 - list.h 3.2 - 详解 list 容器的迭代器 3.2 - test.cpp 一、list 容器的基本介绍 list 容器以类模板 list<T>&#xff08;T 为存储元素的类型&…...

设计模式十五:命令模式(Command Pattern)

命令模式&#xff08;Command Pattern&#xff09;是一种行为型设计模式&#xff0c;它旨在将请求或操作封装成一个对象&#xff0c;从而允许你将不同的请求参数化&#xff0c;并且能够在不同的时间点执行或者队列化这些请求。这种模式使得请求发送者与接收者之间解耦&#xff…...

FPGA GTP全网最细讲解,aurora 8b/10b协议,HDMI视频传输,提供4套工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTP 全网最细解读GTP 基本结构GTP 发送和接收处理流程GTP 的参考时钟GTP 发送接口GTP 接收接口GTP IP核调用和使用 4、设计思路框架HDMI输入视频配置及采集视频数据组包GTP aurora 8b/10b数据对齐视频数据解包图像…...

用dcker极简打包java.jar镜像并启动

用dcker极简打包java.jar镜像并启动 一、本地打包好jar包 二、新建文件夹&#xff0c;将步骤1中的jar包拷贝到文件夹下 三、同目录下新建Dockerfile ## 基础镜像&#xff0c;这里用的是openjdk:8 FROM openjdk:8## 将步骤一打包好的jar包 拷贝到镜像的 跟目录下[目录可以自定义…...

设计模式——创建型

1.单例模式 单例模式主要用于某个类有且只能用一个对象的场景&#xff0c;单例模式下不能外部实例化对象&#xff0c;由类内部自行私有化实例对象并提供一个可以获得该对象的方法。单例模式主要有饿汉模式&#xff08;安全&#xff0c;但在编译时就会自动创建对象&#xff0c;…...

iTOP-i.MX8M开发板添加USB网络设备驱动

选中支持 USB 网络设备驱动&#xff0c;如下图所示&#xff1a; [*] Device Drivers→ *- Network device support → USB Network Adapters→ {*} Multi-purpose USB Networking Framework 将光标移动到 save 保存&#xff0c;如下图所示&#xff1a; 保存到 arch/arm64/c…...

分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测

分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测 目录 分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测 2.代码说明&#xff1a;要求于Matlab 2021版及以上版本。 程序…...

Llama-3.2V-11B-cot参数详解:stream=True + max_new_tokens=512最佳实践

Llama-3.2V-11B-cot参数详解&#xff1a;streamTrue max_new_tokens512最佳实践 1. 项目概述 Llama-3.2V-11B-cot是基于Meta Llama-3.2V-11B-cot多模态大模型开发的高性能视觉推理工具&#xff0c;专为双卡RTX 4090环境深度优化。该工具通过以下创新设计显著降低了多模态大模…...

颠覆传统绘图:3个让技术文档颜值飙升的Mermaid技巧

颠覆传统绘图&#xff1a;3个让技术文档颜值飙升的Mermaid技巧 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器&#xff0c;支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程图…...

中国科协发布声明:停止受理学者参加NeurIPS 2026会议资助申请

点击下方卡片&#xff0c;关注“CVer”公众号AI/CV重磅干货&#xff0c;第一时间送达点击进入—>【顶会/顶刊】投稿交流群添加微信号&#xff1a;CVer2233&#xff0c;小助手拉你进群&#xff01;扫描下方二维码&#xff0c;加入CVer学术星球&#xff01;可以获得最新顶会/顶…...

OpenClaw+GLM-4.7-Flash:个人旅行计划自动生成与优化

OpenClawGLM-4.7-Flash&#xff1a;个人旅行计划自动生成与优化 1. 为什么需要AI旅行助手&#xff1f; 去年夏天&#xff0c;我计划带家人去云南旅行时&#xff0c;花了整整三个晚上对比机票价格、筛选酒店、计算景点间的交通时间。当我在凌晨两点盯着Excel表格里混乱的日期和…...

FDS:高性能火灾动力学模拟的技术革新与工程实践

FDS&#xff1a;高性能火灾动力学模拟的技术革新与工程实践 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds 一、核心价值&#xff1a;重新定义火灾安全工程的仿真范式 Fire Dynamics Simulator (FDS) 作为火灾科学领域…...

Python金融计算效率翻倍的7个隐藏技巧:pandas加速300%、numba编译优化、向量化避坑指南

第一章&#xff1a;Python金融计算效率翻倍的底层逻辑与性能瓶颈诊断Python在金融量化分析中广泛应用&#xff0c;但其默认解释执行机制常导致大规模时间序列回测、蒙特卡洛模拟或协方差矩阵运算时出现显著延迟。效率瓶颈并非源于算法本身&#xff0c;而集中于CPython解释器的G…...

OpenClaw高消耗场景优化:Qwen3-32B私有镜像成本实测

OpenClaw高消耗场景优化&#xff1a;Qwen3-32B私有镜像成本实测 1. 问题背景与测试动机 最近在尝试用OpenClaw自动化处理我的日常工作流时&#xff0c;发现一个令人头疼的问题&#xff1a;长链条任务的Token消耗简直像开了水龙头一样。最夸张的一次&#xff0c;一个简单的&qu…...

Windows系统下Tesseract OCR与Python结合实战:从安装到文字识别应用

1. Windows系统下Tesseract OCR的安装与配置 第一次接触OCR技术时&#xff0c;我被它的神奇能力震撼到了——居然能让计算机读懂图片里的文字&#xff01;作为一款开源OCR引擎&#xff0c;Tesseract在文字识别领域已经默默耕耘了十几年。记得我刚开始用的时候还是3.x版本&#…...

Xilinx Video IP实战:如何将HDMI输入转换为AXI4-Stream(附仿真+上板测试)

Xilinx Video IP实战&#xff1a;HDMI转AXI4-Stream全流程开发指南 在FPGA视频处理系统中&#xff0c;将HDMI等视频输入接口转换为标准化的AXI4-Stream协议是构建复杂视频处理流水线的关键第一步。不同于简单的接口转换&#xff0c;这一过程涉及视频时序解析、数据位宽适配、时…...

大数据在电力行业的应用案例解析 -【电力技术】(一)—— 基于电力大客户运营的大数据落地拓展

目录 一、电力大客户运营场景与大数据价值 二、大数据平台架构(大客户运营专用) 三、落地应用案例一:电力大客户价值分群与精准画像 1. 业务目标 2. 数据宽表(工程常用) 3. 核心算法:K-Means 用户分群(简化示例代码) 4. 应用效果 四、落地应用案例二:大客户负荷…...