【鸿蒙软件开发】ArkTS基础组件之TextTimer(文本显示计时)、TimePicker(时间选择)

文章目录


前言

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

时间选择组件,根据指定参数创建选择器,支持选择小时及分钟。


一、TextTimer

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

说明

该组件从API Version 8开始支持。后续版本如有新增内容,则会更新新版博客。

1.1 子组件

1.2 接口

使用下面这个接口创建即可

javascript 复制代码
TextTimer(options?: { isCountDown?: boolean, count?: number, controller?: TextTimerController })

参数

isCountDown

参数名: isCountDown

参数类型: boolean

参数描述: 是否倒计时。默认值为false。

是否必填:否

count

参数名: count

参数类型: number

参数描述: 倒计时时间(isCountDown为true时生效),单位为毫秒。最长不超过86400000毫秒(24小时)。当0 < count < 86400000时,count值为倒计时初始值。否则,使用默认值作为倒计时初始值。

默认值: 60000

是否必填:否

controller

参数名: controller

参数类型: TextTimerController

参数描述: TextTimer控制器。

是否必填:否

TextTimerController

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

导入对象

javascript 复制代码
textTimerController: TextTimerController = new TextTimerController()

使用下面这个函数即可打开计时器:

javascript 复制代码
start()

使用下面这个函数即可暂停计时器:

javascript 复制代码
pause()

使用下面这个函数即可重置计时器:

javascript 复制代码
reset()

1.3 属性

属性名称:format 属性类型:string

自定义格式,需至少包含一个HH、mm、ss、SS中的关键字。如使用yy、MM、dd等日期格式,则使用默认值。

默认值:'HH:mm:ss.SS'

1.4 事件

javascript 复制代码
onTimer(event: (utc: number, elapsedTime: number) => void)	

时间文本发生变化时触发。

utc:Linux时间戳,即自1970年1月1日起经过的毫秒数。

elapsedTime:计时器经过的时间,单位为毫秒。

1.5 示例代码

javascript 复制代码
// xxx.ets
@Entry
@Component
struct TextTimerExample {
  textTimerController: TextTimerController = new TextTimerController()
  @State format: string = 'mm:ss.SS'

  build() {
    Column() {
      TextTimer({ isCountDown: true, count: 30000, controller: this.textTimerController })
        .format(this.format)
        .fontColor(Color.Black)
        .fontSize(50)
        .onTimer((utc: number, elapsedTime: number) => {
          console.info('textTimer notCountDown utc is:' + utc + ', elapsedTime: ' + elapsedTime)
        })
      Row() {
        Button("start").onClick(() => {
          this.textTimerController.start()
        })
        Button("pause").onClick(() => {
          this.textTimerController.pause()
        })
        Button("reset").onClick(() => {
          this.textTimerController.reset()
        })
      }
    }
  }
}

二、TimePicker

时间选择组件,根据指定参数创建选择器,支持选择小时及分钟。

说明

该组件从API Version 8开始支持。后续版本如有新增内容,则会更新新版博客。

2.1 子组件

2.2 接口

javascript 复制代码
TimePicker(options?: {selected?: Date})

默认以24小时的时间区间创建滑动选择器。

参数

参数名称:selected

参数类型:Date

是否必填:否

参数描述:设置选中项的时间。

默认值:当前系统时间

2.3 属性

除支持通用属性外,还支持以下属性:

属性名称:useMilitaryTime

属性类型:boolean

属性描述:展示时间是否为24小时制,不支持动态修改。

默认值:false

2.4 事件

除支持通用事件外,还支持以下事件:

javascript 复制代码
onChange(callback: (value: TimePickerResult ) => void)

选择时间时触发该事件。

TimePickerResult对象说明

TimePickerResult为24小时制时间。

参数名称:hour

参数类型:number

参数描述:选中时间的时。

取值范围:[0-23]

参数名称:minute

参数类型:number

参数描述:选中时间的分。

取值范围:[0-59]

2.5 示例代码

javascript 复制代码
// xxx.ets
@Entry
@Component
struct TimePickerExample {
  @State isMilitaryTime: boolean = false
  private selectedTime: Date = new Date('2022-07-22T08:00:00')

  build() {
    Column() {
      Button('切换12小时制/24小时制')
        .margin({ top: 30, bottom: 30 })
        .onClick(() => {
          this.isMilitaryTime = !this.isMilitaryTime
        })
      TimePicker({
        selected: this.selectedTime,
      })
        .useMilitaryTime(this.isMilitaryTime)
        .onChange((value: TimePickerResult) => {
          this.selectedTime.setHours(value.hour, value.minute)
          console.info('select current date is: ' + JSON.stringify(value))
        })
    }.width('100%')
  }
}

总结

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

时间选择组件,根据指定参数创建选择器,支持选择小时及分钟。

相关推荐
AL流云。1 分钟前
学习Docker前提:多环境安装Docker
学习·docker·eureka·1024程序员节
jscxy520610 分钟前
笔记 TCP/IP协议栈
1024程序员节
大数据张老师12 分钟前
数据结构——B+树的基本概念
数据结构·1024程序员节
l1t34 分钟前
在DuckDB中使用http(s)代理
数据库·网络协议·http·xlsx·1024程序员节·duckdb
想你依然心痛34 分钟前
仓颉语言第一课:从 HelloWorld 到鸿蒙原生 HTTP 服务
1024程序员节
byte轻骑兵36 分钟前
医疗信创标杆实践:浙人医 LIS 系统异构多活容灾架构深度解析(附 KingbaseES 实战)
网络·架构·1024程序员节
SunnyDays101142 分钟前
如何使用 Python 自动调整 Excel 行高和列宽
经验分享·1024程序员节
风已经起了1 小时前
FPGA学习笔记——用Vitis IDE生成工程(串口发送)
笔记·学习·fpga开发·fpga·1024程序员节
孔明兴汉1 小时前
第一章-第二节-Cursor IDE与MCP集成.md
1024程序员节
学工科的皮皮志^_^1 小时前
锂电池充放电管理学习
经验分享·笔记·单片机·嵌入式硬件·学习·1024程序员节