برنامه نویسی

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%')
  }
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا