ts-basic-components-texttimer.md 2.7 KB
Newer Older
Z
zengyawen 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
# TextTimer

> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。


文本计时器组件,支持自定义时间格式。


## 权限列表




## 子组件




## 接口说明

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

- 参数
  | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | 
  | -------- | -------- | -------- | -------- | -------- |
  | isCountDown | boolean | 否 | false | 是否倒计时。 | 
  | count | number | 否 | 60000 | 倒计时时间(isCountDown为true时生效),单位为毫秒。<br/>-&nbsp;count&lt;=0时,使用默认值为倒计时初始值。<br/>-&nbsp;count&gt;0时,count值为倒计时初始值。 | 
  | controller | [TextTimerController](#texttimercontroller) | 否 | null | TextTimer控制器。 | 

## 属性

| 名称 | 参数类型 | 默认值 | 描述 | 
| -------- | -------- | -------- | -------- |
| format | string | 'hh:mm:ss.ms' | 自定义格式,需至少包含一个hh、mm、ss、ms中的关键字。 | 


## 事件

| 名称 | 功能描述 | 
41
| -------- | -------- |
Z
zengyawen 已提交
42 43 44
| onTimer(callback:&nbsp;(utc:&nbsp;number,&nbsp;elapsedTime:&nbsp;number)&nbsp;=&gt;&nbsp;void) | 时间文本发生变化时触发。<br/>utc:当前显示的时间,单位为毫秒。<br/>elapsedTime:计时器经过的时间,单位为毫秒。 | 


45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
## TextTimerController

TextTimer组件的控制器,用于控制文本计时器。

### 导入对象

```
textTimerController: TextTimerController = new TextTimerController()

```

### start

start()

计时开始。

### pause

pause()

计时暂停。

### reset

reset()

重置计时器。


Z
zengyawen 已提交
75 76
## 示例

H
geshi  
HelloCrease 已提交
77 78
```ts
// xxx.ets
Z
zengyawen 已提交
79 80 81
@Entry
@Component
struct TextTimerExample {
82
  textTimerController: TextTimerController = new TextTimerController()
Z
zengyawen 已提交
83 84 85 86
  @State format: string = 'hh:mm:ss.ms'

  build() {
    Column() {
87
      TextTimer({controller: this.textTimerController})
Z
zengyawen 已提交
88 89
        .format(this.format)
        .fontColor(Color.Black)
90
        .fontSize(50)
Z
zengyawen 已提交
91 92 93 94 95
        .onTimer((utc: number, elapsedTime: number) => {
          console.info('textTimer notCountDown utc is:' + utc + ', elapsedTime: ' + elapsedTime)
        })
      Row() {
        Button("start").onClick(() => {
96
          this.textTimerController.start();
Z
zengyawen 已提交
97 98
        });
        Button("pause").onClick(() => {
99
          this.textTimerController.pause();
Z
zengyawen 已提交
100 101
        });
        Button("reset").onClick(() => {
102
          this.textTimerController.reset();
Z
zengyawen 已提交
103 104 105 106 107 108 109 110 111
        });
      }
    }
  }
}
```


![zh-cn_image_0000001251007721](figures/zh-cn_image_0000001251007721.gif)