首页 > 其他分享 >【HarmonyOS】ArkTS学习之基于TextTimer的简易计时器

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

时间:2023-07-14 10:34:55浏览次数:43  
标签:24 count ArkTS format TextTimer HarmonyOS 计时器 isCountDown

​【关键字】

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

标签:24,count,ArkTS,format,TextTimer,HarmonyOS,计时器,isCountDown
From: https://www.cnblogs.com/mayism123/p/17553040.html

相关文章

  • 【HarmonyOS】元服务隐私协议开发指导样例
    【关键字】隐私、弹窗、元服务、协议 【介绍】每个元服务必须提供隐私声明,否则将导致提交元服务发布上架时,审核无法通过。隐私声明的具体要求请参见隐私声明规范。用户使用元服务前,必须引导其了解隐私声明信息,获取用户授权后,才能继续使用元服务。废话不多说,上代码!! 【方式......
  • 【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(三)
    ​贴接上回。。。 【往期FAQ参考】【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(一)【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(二) 【本期FAQ】1、第一次调用geolocation.getCurrentLocation()接口,弹出权限弹框后并未返回结果,再次调用接口才会成功返回?(API8......
  • 【HarmonyOS】元服务启动命令漫谈
    ​在日常开发中,我们可以通过DevEcoStudio,直接Run我们的元服务工程,在测试机上拉起我们开发的元服务页面。但是我们自己打包HarmonyOS元服务hap在手机上安装后是没有桌面图标的。虽然我们可以在设置的服务管理中找到我们安装的元服务,但是无法直接打开,这就需要通过命令行的方式来启......
  • 【直播预告】HarmonyOS极客松赋能直播第四期:HarmonyOS开发经验分享
        ......
  • 【HarmonyOS】一文教你快速解决低代码连接器返参数据结构嵌套错误问题
    ​【关键字】低代码平台、连接器、返参数据结构嵌套 【写在前面】关于低代码平台中的连接器如何使用,请参考以下内容:https://blog.51cto.com/u_15687416/6414269下文将会介绍连接器在实际使用中遇到的一个常见的问题。 【问题描述】1、云侧接口定义首先来一起看一下云......
  • 【HarmonyOS】低代码开发之FA卡片开发流程
    1开发准备1.1FA卡片开发注意事项参考文档:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-service-widget-provider-js-00000011506021751、只定义一个FA卡片首先通过DevEcoStudio创建一个工程,创建完成之后,找到src/main/config.json文件,在confi......
  • 【HarmonyOS】低代码开发使用module中的自定义组件
     “Module是应用/服务的基本功能单元,包含了源代码、资源文件、第三方库及应用/服务配置文件,每一个Module都可以独立进行编译和运行。一个HarmonyOS应用/服务通常会包含一个或多个Module,因此,可以在工程中创建多个Module,每个Module分为Ability和Library两种类型。”这个是HarmonyOS......
  • 【HarmonyOS】低代码项目中设置拖拽组件背景色透明度问题
    【关键字】HarmonyOS、低代码开发、拖拽组件、背景色透明度【问题描述】使用拖拽式组件开发HarmonyOS项目时,想给组件设置背景色透明度,有如下几个问题:1)使用DevEcoStudio自带的颜色选择器,无法设置透明度,只能手动输入2)在子模块library中给组件手动输入#ff000000格式背景色,在主模块ent......
  • 【直播预告】HarmonyOS极客松赋能直播第二期:数据库与网络连接开发
      ......
  • 【HarmonyOS】如何解决智能穿戴设备中swiper组件右滑与系统退出应用冲突问题(API6 JS)
    【关键字】API6、JS、swiper组件、智能穿戴、setSwipeToDismiss【问题描述】使用API6JS开发智能穿戴设备HarmonyOS应用,在首页使用swiper组件时,右滑swiper时会退出应用,无法实现swiper右滑效果,效果如下所示:【问题分析与原因】当页面栈只有一个页面时,默认滑动事件分发会让应用退出,而......