首页 > 数据库 > 数据库开发技术 > HarmonyOS NEXT实战:倒计时
##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##
目标:实现倒计时功能
知识点: TextTimer通过文本显示计时信息并控制其计时器状态的组件。 在组件不可见时时间变动将停止,组件的可见状态基于onVisibleAreaChange处理,可见阈值ratios大于0即视为可见状态。
接口
TextTimer(options?: TextTimerOptions)
options:通过文本显示计时信息并控制其计时器状态的组件参数。
TextTimerOptions
TextTimerController TextTimer组件的控制器,用于控制文本计时器。一个TextTimer组件仅支持绑定一个控制器,组件创建完成后相关指令才能被调用。
TextTimerConfiguration
TextTimer属性
实战:CountdownDemoPage
@Entry
@Component
struct CountdownDemoPage {
textTimerController: TextTimerController = new TextTimerController()
@State format: string = 'mm:ss.SS'
@State isStart: boolean = false
build() {
Column({ space: 10 }) {
Text('倒计时Demo')
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({ space: 20 }) {
Column({ space: 10 }) {
SymbolGlyph(this.isStart ? $r('sys.symbol.pause') : $r('sys.symbol.play_fill'))
.fontSize(30)
.renderingStrategy(SymbolRenderingStrategy.SINGLE)
.fontColor([Color.Black])
Text(this.isStart ? '暂停' : '开始')
}
.onClick(() => {
if (this.isStart) {
this.textTimerController.pause()
} else {
this.textTimerController.start()
}
this.isStart=!this.isStart
})
Column({ space: 10 }) {
SymbolGlyph($r('sys.symbol.arrow_counterclockwise'))
.fontSize(30)
.renderingStrategy(SymbolRenderingStrategy.SINGLE)
.fontColor([Color.Black])
Text('重置')
}
.onClick(() => {
this.textTimerController.reset()
})
}
}
.width('100%')
}
}
原文作者:;如有侵权,请联系管理员删除。