HarmonyOS 列表中如何实现多个TextTimer,且自动开始计时并时间单位改为秒?

列表中如何实现多个TextTimer,且自动开始计时并时间单位改为秒 任务列表中每项任务存在目前完成倒计时,需要自动计时且时间单位为秒

阅读 544
1 个回答

可以参考下demo,改为秒可以参考示例三

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-texttimer-V5\#示例3

demo:

class Test {
  textTest: string = ''
  timer: number = 0
  countDownTextTimerController: TextTimerController = new TextTimerController()

  constructor(text: string, time: number, countDownTextTimerController: TextTimerController) {
    this.textTest = text
    this.timer = time
    this.countDownTextTimerController = countDownTextTimerController
  }
}

@Component
@Entry
struct Index {
  @State array: Test[] =
    [new Test('我的', 10000, new TextTimerController()), new Test('你的', 90000, new TextTimerController())]
  @State format: string = 'mm:ss.SS'

  build() {
    Column() {
      List() {
        ForEach(this.array, (item: Test) => {
          ListItem() {
            Row() {
              Text(item.textTest)
              TextTimer({ isCountDown: true, count: item.timer, controller: item.countDownTextTimerController })
                .fontColor(Color.Black)
                .format(this.format)
                .fontSize(50)
                .onTimer((utc: number, elapsedTime: number) => {
                  console.info('textTimer notCountDown utc is:' + utc + ', elapsedTime: ' + elapsedTime)
                })
                .onAppear(() => {
                  item.countDownTextTimerController.start()
                })
            }
            .height(200)
            .width('100%')
          }
        })
      }
    }
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进