在Flutter中,有一个定时器类Timer,使用方法:

Timer timer = new Timer(new Duration(milliseconds: 60), (){//倒计时结束执行});

上面代码就是执行一个定时器,60秒后执行回调方法。但是无法获取倒计时的进度。所以我们可以创建一个周期性的Timer:

Timer = countDownTimer = new Timer.periodic(new Duration(seconds: 1), (timer){print(timer.tick);});

上面是一个按周期执行的timer,每隔1秒钟执行一次,所以我们可以利用这个来写倒计时按钮。

             String yzmText="获取验证码";new OutlineButton(onPressed: yzmText=="获取验证码"?yzmGet:null,padding: EdgeInsets.only(top: 0),borderSide: new BorderSide(color: mainGreenColor),highlightedBorderColor: mainGreenColor,child: new Text(yzmText),textColor: mainGreenColor,),

首先定义一个按钮显示的文本的变量yzmText,zai onPressed中根据yzmText是否为"获取验证码"判断是否可点击,可点击的话执行yzmGet方法:

 ///获取验证码Timer countDownTimer;yzmGet() {countDownTimer?.cancel();//如果已存在先取消置空countDownTimer = null;countDownTimer = new Timer.periodic(new Duration(seconds: 1), (t){setState(() {if(60-t.tick>0){//60-t.tick代表剩余秒数,如果大于0,设置yzmText为剩余秒数,否则重置yzmText,关闭countTimeryzmText = "${60-t.tick}秒";}else{yzmText = '获取验证码';countDownTimer.cancel();countDownTimer = null;}});});}

最后别忘记在dispose释放timer:

@overridevoid dispose() {// TODO: implement disposecountDownTimer?.cancel();countDownTimer = null;super.dispose();}

最后的最后:

欢迎各位同学一起学习flutter,群号:187670882

Flutter获取验证码倒计时按钮相关推荐

  1. vue 获取验证码倒计时组件

    之前写过一个计时函数,有计算误差,但是验证码的60秒倒计时可以忽略这一点点误差.直接上代码. <template><div class="captcha-row" ...

  2. flutter获取验证码输入框组件

    代码 import 'package:flutter/material.dart';class ValidataInputBoxWidget extends StatefulWidget {Valid ...

  3. Axure9 实现点击获取验证码倒计时功能

    此文章帮助大家实现App的点击获取验证码的倒计时功能. 1:创建按钮和全局变量: 拖入一个矩形,创建全局变量Time=60. 在项目里面就可以找到创建全局变量的地方. 2:添加点击事件: (1):添加 ...

  4. VUE定时器,用于登陆获取验证码倒计时

    第一步 在当前的按钮中添加@click 事件,并在按钮内文字后面加上变量,并用v-if进行判断,看秒数是否大于0 并且添加disabled,当second>0的时候给它disabled掉. 第二 ...

  5. android 获取验证码倒计时

    在开发时,登陆注册时必有的模块,下面是记录一下注册时获取验证码的方法:效果图如下: 获取验证码后,进入倒计时并且是不可点击的状态. 1.复制下面工具类到项目中 import android.graph ...

  6. 微信小程序获取验证码倒计时

    实现效果图 使用方法: setInterval demo:(如果对 setInterval不了解的可以先百度下) xml 中写一个按钮: <view class="container& ...

  7. jQuery 点击获取验证码,倒计时30秒

    //HTML: <div class="layui-form-item">     <input class="layui-yanzheng" ...

  8. js 获取验证码倒计时

    1 html 部分 <text :disabled="disabled" @click="getCode">{{ btntext }}</te ...

  9. 【安卓基础】倒计时按钮封装(验证码倒计时按钮)

    验证码按钮在项目的使用频率应该是100%,现在大多数应用都会采用手机号码登陆,通常都会支持发送验证码登陆的功能. 我在项目中也遇到这样的功能,特别在忘记密码的界面,我注意到一点:当发送验证码之后,要6 ...

最新文章

  1. 【知乎热议】没有顶会的CV/NLP方向的博士生毕业出路在哪里?
  2. java pack unicode,汉字和Unicode码(utf-8)之间的转换(Pack/Unpack)
  3. CMake编译Widget UI Qt程序
  4. Linux开启路由转发功能(透明代理环境搭建)
  5. 服务器的文件共享,服务器文件共享
  6. RabbitMQ教程_4 Java 使用rabbitmq
  7. Tensorflow相关学习笔记(一)GPU处理相关
  8. 实用主义学python 下载_麻瓜编程:实用主义学Python(5套全)
  9. 计算机 host id是指,关于如何修改hostid的问题Windows系统 -电脑资料
  10. css 下拉 小箭头
  11. 【图论】 腾讯大战360
  12. Oracle 转 PG- ERROR: recursive query “t“ column 2 has type character varying(150) in non-recursive t
  13. java数组逆序_Java 数组的排序、逆序
  14. icloud连接服务器时出现问题_iphone8 icloud连接服务器时出现问题
  15. Vue3笔记_02setup与常用的Composition API(组合式API)
  16. Scikit-Learn 中文文档】数据集加载工具 - 用户指南 | ApacheCN
  17. 上传下载Linux系统指定目录的文件
  18. Python解析证书结构方法
  19. [新人向]MySQL和Navicat下载、安装及使用详细教程
  20. 冯扬文:船用燃料油价格大涨对我省航运企业的影响

热门文章

  1. 为什么有时候启动计算机会很卡,为什么我的电脑会卡?
  2. Python之爬虫工具包
  3. 联想2655DN卡纸
  4. java版本匠魂下载教程_匠魂工具怎么升级?这篇超详细教程攻略请收下
  5. 鸡卵清白蛋白偶联维生素A(VA-OVA),Vitamin A-Ovalbumin Conjugate
  6. Ubuntu自动选择最佳软件源
  7. 管理帧、控制帧与数据帧
  8. 2022教育邮箱怎么申请登录,如何申请注册一个学生个人教育邮箱
  9. Excel制图之横纵坐标10倍缩放
  10. @component(““)