【HarmonyOS】ArkTS学习之基于TextTimer的简易计时器

news2025/1/10 20:37:26

【关键字】
ArkTS、计时器、TextTimer

【介绍】
TextTimer是ArkTS提供的通过文本显示计时信息并控制其计时器状态的组件。今天就给大家展示一个基于TextTimer的简易计时器的实现吧。在使用之前我们要先了解它的用法:
TextTimer(options?: { isCountDown?: boolean, count?: number, controller?: TextTimerController })
可以看出使用TextTimer我们要传入一个对象,这个对象里面包含三个参数,分别是isCountDown、count和controller,下图是关于这三个参数的说明:

cke_364.png

TextTimer支持format属性对时间进行过滤,通过format可以把时间处理成我们想要的格式,它的默认值是:'HH:mm:ss.SS',当然我们也可以对它进行自定义,比如"HH:mm:ss"、"mm:ss.SS"等。
TextTimer还提供了一个事件方法来监听时间的变化:

cke_1006.png

此外,TextTimer还提供了一个控制器TextTimerController,用于控制文本计时器。这里我们要注意:一个TextTimer组件仅支持绑定一个控制器喔。TextTimerController控制器为我们提供了三种方法start、pause和reset,顾名思义,它们的作用就是开始计时、暂停计时和重置计时。

【成果展示】

下面我们来看看示例代码吧~

@Entry
@Component
struct TextTimerExample {
  textTimerController: TextTimerController = new TextTimerController()
  @State format: string = 'mm:ss.SS'

  build() {
    Column() {
      TextTimer({ isCountDown: false, count: 300000, controller: this.textTimerController })
        .format(this.format)
        .margin({top: 250,bottom: 20,right: 200, left: 200 })
        .fontColor(Color.Black)
        .fontSize(50)
        .onTimer((utc: number, elapsedTime: number) => {
          console.info('textTimer's utc is:' + utc + ', elapsedTime is: ' + elapsedTime)
        })
      Column() {
        Button("计时开始")
          .type(ButtonType.Normal)
          .margin({top: 200, bottom: 10})
          .borderRadius(24)
          .width(160)
          .height(60)
          .fontSize(24)
          .onClick(() => {
            this.textTimerController.start()
          })
        Button("暂停计时")
          .type(ButtonType.Normal)
          .borderRadius(24)
          .margin({bottom: 10})
          .width(160)
          .height(60)
          .fontSize(24)
          .onClick(() => {
            this.textTimerController.pause()
          })
        Button("重置")
          .type(ButtonType.Normal)
          .borderRadius(24)
          .width(160)
          .height(60)
          .fontSize(24)
          .onClick(() => {
            this.textTimerController.reset()
          })
      }
    }
  }
}

上面的代码为我们实现的是一个从零开始的计时器,效果如下:

cke_3461.png

还有一点要注意的是,在isCountDown为false的情况下,count无论设置为多少都不生效哦。接下来我们把isCountDown的值改为true,把count值改为300000,来实现一个五分钟的倒计时,效果如下:

cke_4761.png

以上就是我的简易计时器分享啦!

【相关参考】
TextTimer组件的使用:https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/ts-basic-components-texttimer-0000001478181413-V3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/752000.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【文末送书】Python深度学习(基于PyTorch)

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。搜…

FIR 滤波器去除噪声

目录 FIR 滤波器去除噪声 解决方案一:滑动平均滤波方法 解决方案二:另外一种理解角度-----引入权重系数概念 FIR滤波器表达式 FIR滤波器 一、FIR滤波器的基本结构 二、FIR滤波器的设计方法 1、频率采样法 2、窗函数法 三、FIR滤波器的性能指标 …

【2023,学点儿新Java-33】字符型变量char | 布尔类型变量 boolean:true、false

前情提要: 【2023,学点儿新Java-32】Java基础小练习:根据圆周率与半径求圆的面积 | 温度转换 | 计算矩形面积 | 判断奇偶数 | 年龄分类【2023,学点儿新Java-31】测试:整型和浮点型变量的使用 | 附:计算机存…

(超详解)--->自定义类型(结构体,枚举,联合)

目录 本章学习重点: 1:结构体类型的声明与变量的定义 2:如何求解结构体的大小(结构体的内存对齐) 3:结构体传参,结构体实现位段 4:枚举类型的定义和优点 5:联合的定义与特点及大小的计算 1:结构…

Kind | Kubernetes in Docker 把k8s装进docker!

有点像杰克船长的黑珍珠 目录 零、说明 一、安装 安装 Docker 安装 kubectl 安装 kind 二、创建/切换/删除集群 创建 切换 删除 将镜像加载到 kind 群集中 零、说明 官网:kind Kind: Kubernetes in Docker 的简称。kind 是一个使用 Docker 容…

【技能实训】DMS数据挖掘项目-Day09

文章目录 任务9【任务9.1.1】升级DataBase类为可序列化的类,以便在文件保存或网络中传递【任务9.1.2】升级LogRec类为可序列化的类,以便在文件保存或网络中传递【任务9.1.3】升级MatchedLogRec类为可序列化的类,以便在文件保存或网络中传递【…

java通过正则表达式提取信息

java通过正则表达式提取信息 工具类如下 package com.datafactory.util;import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component;import java.util.regex.Matcher; import java.util.regex.Pattern;Component Slf4j public class RegexUtils {/…

“简单易懂的排序:深入了解直接选择排序“

文章目录 🔍 选择排序的原理与过程📈 选择排序的优缺点👉 代码实现 🔍 选择排序的原理与过程 本文我们直接说一个优化过的直接选择排序。其思路大同小异. 选择排序的思路很简单 每次从待排序的数据中选择一个最小和最大的元素&a…

记一次rabbitmq消息发送成功,消费丢失问题

记一次rabbitmq消息发送成功,消费丢失问题 背景 测试数据归档,偶现数据未归档 排查 idea线上调试,log日志,数据库消息发送记录,代码分块重复执行看哪块出的问题,结果均无问题,最后使用rabbi…

网关选型对比

网关选型 网关简介 网关是将一个网络与另一个网络进行相互连通,提供特定应用的网络间设备,应用网关必须能实现相应的应用协议。应用网关可以看做是运行于要求特定业务的客户机与提供所需业务的服务器之间的中间过程。应用网关在这类过程中,从…

MySQL练习题(6)

创建两个表插入数据 CREATE DATABASE beifen;use beifen;CREATE TABLE books(bk_id INT NOT NULL PRIMARY KEY,bk_title VARCHAR(50) NOT NULL,copyright YEAR NOT NULL);INSERT INTO booksVALUES (11078, Learning MySQL, 2010),(11033, Study Html, 2011),(11035, How to u…

Linux—实操篇:组管理和权限管理

目录 1、Linux组基本介绍 2、文件/目录 所有者 2.1、查看文件所有者 2.1、修改文件的所有者 3、组的创建 4、文件/ 目录所在组 4.1、查看文件/目录所在组 4.2、修改文件/ 目录所在组 5、其他组 6、改变用户所在组 7、权限基本介绍 8、rwx权限详解 8.1、rwx作用到文…

除了单测、写main方法,还有其他验证方式吗?试试Java JShell吧!

文章首发地址 JShell 概述 Java JShell 是 JDK 9 中引入的一个交互式命令行工具,可以方便地测试 Java 代码片段和进行试验性的 Java 编程。JShell 可以帮助开发人员轻松地创建和测试 Java 代码,而无需编写和运行完整的应用程序或测试用例。以下是 JShe…

了解刚性、惯量、响应时间及伺服增益之间的关系,提高系统的性能和稳定性!

在伺服系统选型及调试中,刚性、惯量、响应时间及伺服增益调整之间的关系错综复杂,这些因素在控制系统中相互影响,对于系统的稳定性和性能至关重要。但在实践中如何调整取值比较合理,这些就算是工程师都会经常感到困惑。所以了解它…

Django 分布式路由

简介: Django中,主路由配置文件(urls.py)可以不处理用户具体路由,主路由的配置文件可以配置成做请求的分发(分布式请求处理,分发到子路由而不是具体的视图函数)。具体的请求可以由各自的应用来处理。 步骤…

stm32(SPI读写W25Q18)

SPI 是什么? SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总 线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PC…

【Nginx】rewrite简单使用

前言 没有对正式的rewrite进行了解,为了能快速了解它是干嘛怎么用,找了一些有例子的博客进行简单学习了一下;由于每次看的间隔有点大,老忘记,这回专门写个超级快速理解的例子。 PS:下面的解释可能会不太对…

Serverless和EDA是绝配,亚马逊云科技CTO Werner表示需要用开放心态来重新审视架构

前一段有个很火的博客,讲的是一家全球流媒体企业的监测系统从Serverless微服务改成了单体,成本居然降低了90%!这一下子可在网上炸锅了,特别是一些看不惯微服务的、单体应用的拥趸,更是坐不住了。但这并不像吃瓜群众看到…

ret2syscall-执行系统调用

题目 checksec一下: 32位程序,没有canary、PIE,开了NX,放入IDA看一下: 有gets,可以溢出,不过没有system函数,也不能执行shellcode,查看字符发现有/bin/sh,那就…

消息中间件系列 - RocketMQ

前言 本内容仅用于个人学习笔记,如有侵扰,联系删除 【尚硅谷】RocketMQ教程丨深度掌握MQ消息中间件_哔哩哔哩_bilibili 第一章 RocketMQ概述 一、MQ概述 1 、MQ简介 MQ,Message Queue,是一种提供消息队列服务的中间件&#…