第九节HarmonyOS 常用基础组件12-TextTimer

1、描述

通过文本显示计时信息并控制其计时器状态的组件。

2、接口

TextTimer(options?: {isCountDown?: boolean, count?: number, controller?: TextTimerController})

3、参数

|-------------|---------------------|----|----------------------------------------------------------------------------------------------|
| 参数名称 | 参数类型 | 必填 | 描述 |
| isCountDown | boolean | 否 | 是否倒计时。默认值:false |
| count | number | 否 | 倒计时时间(isCountDown为true时生效),单位为毫秒。最长不超过86400000毫秒(24小时)。即count取值在0~86400000数值之间。默认值:6000(6s) |
| controller | TextTimerController | 否 | TextTimer控制器 |

4、属性

format -- string -- 自定义格式,至少需要包含一个HH、mm、ss、SS中的关键字。默认值:'HH:mm:ss.SS'

5、事件

onTimer(event: (utc: number, elapsedTime: number) => void)- 时间文本发生变化时触发。(utc:linux时间戳,即自1970年1月1起经过的毫秒数。 elapsedTime: 计时器经过的时间,单位毫秒)

6、TextTimerController

TextTimer组件的控制器,拥挤控制文本计时器,一个TextTimer组件仅支持绑定一个控制器。

导入对象

controller: TextTimerController = new TextTimerController()

start() -- 计时开始

pause() -- 计时暂停

reset() -- 重置计时器

7、实例

复制代码
import router from '@ohos.router'

@Entry
@Component
struct TextTimerPage {
  @State message: string = '通过文本显示计时信息并控制其计时器状态的组件。'
  @State onTimerContent: string = ''
  // TextTimer的控制器
  private controller: TextTimerController = new TextTimerController()

  build() {
    Row() {
      Scroll() {
        Column() {
          Text(this.message)
            .fontSize(20)
            .fontWeight(FontWeight.Bold)
            .width('96%')
          Blank(12)
          TextTimer({ isCountDown: true, count: 120000, controller: this.controller })
            .fontSize(20)
            .fontColor(Color.Red)
            .format('mm:ss')
            .onTimer((utc: number, elapsedTime: number) => { // utc 时间戳, elapsedTime计时器经过的时间
              this.onTimerContent = 'textTimer 时间戳 utc is:' + utc + ', 计时器经过的时间 elapsedTime: ' + elapsedTime;
            })
          Blank(12)
          Row() {
            Button('计时器启动').width('30%').onClick(() => {
              this.controller.start();
            })
            Button('计时器暂停').width('30%').margin({ left: '2.5%', right: '2.5%' }).onClick(() => {
              this.controller.pause();
            })
            Button('计时器重置').width('30%').onClick(() => {
              this.controller.reset();
            })
          }
          .alignItems(VerticalAlign.Center)

          Blank(12)
          Text(this.onTimerContent).width('96%').fontSize(20).fontColor(Color.Red)
          Blank(12)
          Button("文本文档")
            .fontSize(20)
            .backgroundColor('#007DFF')
            .width('96%')
            .onClick(() => {
              // 处理点击事件逻辑
              router.pushUrl({
                url: "pages/baseComponent/textTimer/TextTimerDesc",
              })
            })

        }
        .width('100%')
      }
    }
    .padding({ top: 12, bottom: 12 })
  }
}

8、效果图

相关推荐
慧都小项1 分钟前
程序到了Linux才出错?用CLion把调试接到目标环境
linux·运维·服务器
传人once38 分钟前
多图片上传预览功能如何写
前端·css·html·jquery·html5
Eric.461 小时前
Wan‑Animate+MiniMax-H3 本地部署 AI 漫剧流水线:8G 显存动作迁移与动态分镜工程实战
前端·人工智能·comfyui·ai漫剧
Seraphina361 小时前
SQL注入(二)盲注
网络·数据库·经验分享·笔记·sql
Ruiery2 小时前
Linux 6.6内核内存管理深度解析(一):物理内存初始化 — memblock 怎么把内存交给 buddy
linux·运维·服务器
库拉镜像AI牛牛3 小时前
短剧内容自动化生产:知漫剧工作室落地教程
大数据·服务器·前端·人工智能·语音识别
律宏阔3 小时前
Flutter 列表图片内存优化:CachedNetworkImage 与 ClipRRect 的取舍
前端·flutter
行者全栈架构师3 小时前
【鸿蒙心迹】相册文搜图工程化落地:HarmonyOS 7.0 端侧 AI 检索全链路实战与 5 个踩坑解法
前端
天蓝蓝的本我3 小时前
conda日常用到的命令积累1-登录linux,安装pycharm
linux·pycharm·conda
Android系统攻城狮3 小时前
Linux Gstreamer深度解析之gst_audio_encoder_get_frame_max调用流程与实战(五十九)
linux·运维·服务器·gstreamer音视频·音视频进阶·gstreamer音视频进阶