Harmonyos Next Practical: Countdown – Community Dev

هدف: عملکرد شمارش معکوس را پیاده سازی کنید
نکات دانش:
TextTimer مؤلفه ای است که اطلاعات زمان بندی را از طریق متن نشان می دهد و وضعیت تایمر آن را کنترل می کند.
هنگامی که مؤلفه قابل مشاهده نباشد ، تغییرات زمان متوقف می شود و وضعیت قابل مشاهده این مؤلفه بر اساس OnvisibleareArachange پردازش می شود. نسبت آستانه مرئی بیشتر از 0 قابل مشاهده است.
رابط
TextTimer(options?: TextTimerOptions)
گزینه ها parameters پارامترهای مؤلفه ای که اطلاعات زمان بندی را از طریق متن نمایش می دهند و وضعیت تایمر آن را کنترل می کنند.
تطابق متن
- iscountdown: شمارش معکوس یا نه. هنگامی که مقدار صحیح است ، تایمر شروع به شمارش می کند ، به عنوان مثال ، از 30 ثانیه به 0 ثانیه. هنگامی که مقدار نادرست است ، تایمر شروع به شمارش می کند ، به عنوان مثال از 0 ثانیه تا 30 ثانیه. مقدار پیش فرض: نادرست
- تعداد: زمان تایمر (موثر در هنگام صحت ISCountdown) ، در میلی ثانیه اندازه گیری می شود. حداکثر مدت زمان نباید از 86400000 میلی ثانیه (24 ساعت) تجاوز کند. وقتی 0
- کنترل کننده: کنترلر TextTimer.
متناسب با متن
از کنترل کننده مؤلفه TextTimer برای کنترل تایمر متن استفاده می شود. یک مؤلفه TextTimer فقط از اتصال به یک کنترلر پشتیبانی می کند و دستورالعمل های مربوطه فقط پس از ایجاد مؤلفه قابل فراخوانی است.
پیکربندی متن
- تعداد: زمان تایمر (موثر در هنگام صحت ISCountdown) ، در میلی ثانیه اندازه گیری می شود. حداکثر مدت زمان نباید از 86400000 میلی ثانیه (24 ساعت) تجاوز کند. وقتی 0
- iscountdown: شمارش معکوس یا نه. هنگامی که مقدار صحیح است ، تایمر شروع به شمارش می کند ، به عنوان مثال ، از 30 ثانیه به 0 ثانیه. هنگامی که مقدار نادرست است ، تایمر شروع به شمارش می کند ، به عنوان مثال از 0 ثانیه تا 30 ثانیه. مقدار پیش فرض: نادرست
- شروع شده: آیا تایمر شروع شده است.
- ElapsedTime: زمان سپری شده توسط تایمر ، در کوچکترین واحد فرمت شده اندازه گیری می شود.
ویژگی TextTimer
- قالب: یک قالب سفارشی را تنظیم کنید که حداقل یک کلمه کلیدی را از HH ، MM ، SS ، SS شامل شود. در صورت استفاده از قالب های تاریخ مانند YY ، MM ، DD و غیره ، از مقادیر پیش فرض استفاده کنید.
- TextShadow: اثر سایه متن را تنظیم کنید. این رابط از وارد کردن پارامترها در فرم آرایه و اجرای چندین سایه متن پشتیبانی می کند. از زمینه های پر کردن پشتیبانی نکنید ، از حالت استخراج رنگ هوشمند پشتیبانی نکنید.
- ContentModifier: روش برای شخصی سازی منطقه محتوای TextTimer. در مؤلفه TextTimer ، روش منطقه محتوا را سفارشی کنید.
مبارزه واقعی: شمارش معکوس
@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%')
}
}