HarmonyOS 鸿蒙Next TextTimer能设置指定的时间开始正向计时吗,不是倒计时,如果不能是否有替换方案

发布于 1周前 作者 eggper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next TextTimer能设置指定的时间开始正向计时吗,不是倒计时,如果不能是否有替换方案

倒数日显示已经经过的时间

2 回复

指定时间正向计时可以参考demo

[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
textTimerController: TextTimerController = new TextTimerController()
[@State](/user/State) format: string = 'mm:ss.SS'
[@State](/user/State) delay: number = 1000
[@State](/user/State) countDownTimeText: string = ''
[@State](/user/State) hourTime: number = 0
[@State](/user/State) minuteTime: number = 0
[@State](/user/State) secondTime: number = 0
[@State](/user/State) order: boolean = true
[@State](/user/State) countDownTime: number = 55000
[@State](/user/State) timer: number = 0

timeToString(value: number) { //毫秒时间转换 let secondTime = value / 1000, //秒 minuteTime = 0, //分 hourTime = 0; //时 if (secondTime > 60) { //如果秒数大于60,将秒数转换成整数 minuteTime = secondTime / 60; //获取分钟,除以60取整数 secondTime = secondTime % 60; //获取秒数,秒数取余取整 if (minuteTime > 60) { hourTime = minuteTime / 60; minuteTime = minuteTime % 60 } } let result = “”; result = “” + this.sizeFormat(secondTime) + “” + result if (minuteTime >= 0) { result = “” + this.sizeFormat(minuteTime).split(’.’)[0] + “:” + result } if (this.hourTime >= 0) { result = “” + this.sizeFormat(hourTime).split(’.’)[0] + “:” + result } //保存时间数据 this.countDownTimeText = result this.hourTime = hourTime this.minuteTime = minuteTime this.secondTime = secondTime this.secondTime = secondTime return result; }

sizeFormat(val: number) { return val >= 10 ? ‘’ + val : ‘0’ + val }

startTiming() { if (!this.order) { this.timer = setInterval(() => { this.timeToString(this.countDownTime); this.countDownTime = this.countDownTime - this.delay; if (this.countDownTime <= 0) { this.countDownTimeText = ‘00:00:00’; clearTimeout(this.timer); } }, this.delay) } else { this.order = true; this.timer = setInterval(() => { this.timeToString(this.countDownTime); this.countDownTime = this.countDownTime + this.delay }, this.delay) } }

build() { Column() { Text((“计时:”) + (this.countDownTimeText)).fontColor(Color.Black) Row() { Button(“start”).onClick(() => { clearInterval(this.timer) this.startTiming() }) Button(“pause”).onClick(() => { clearInterval(this.timer) }) Button(“reset”).onClick(() => { this.countDownTime = 55000 this.order = true this.timeToString(this.countDownTime) clearInterval(this.timer) }) } } } }

HarmonyOS 鸿蒙Next TextTimer能设置指定的时间开始正向计时。TextTimer组件本身支持正向计时功能,你可以通过设置相关参数来实现。在HarmonyOS中,TextTimer组件的计时模式可以通过其属性进行配置。要实现指定时间开始正向计时,你可以按照以下步骤操作:

  1. 初始化TextTimerController实例,用于控制计时器状态。
  2. 设置计时模式为正向计时(通常在组件的属性中设置)。
  3. 如果需要在指定时间开始计时,可以在该时间到达时通过代码调用TextTimerController的start方法启动计时器。

如果需要在UI中提供用户交互来设置开始计时的时间,可以结合时间选择器组件(如TimePicker)让用户选择具体时间,并在用户确认后通过回调函数设置并启动TextTimer。

如果以上方法无法满足你的需求,或者你在实现过程中遇到问题,建议检查TextTimer组件的官方文档以获取更多信息。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部