搜尋套件、儲存庫與 APP 分類

timer_builder 封面
套件詳情v2.0.0

timer_builder

一個在預定、週期性或動態產生的時間事件觸發時重新建構自身的元件。

AndroidiOSWebmacOSWindowsLinux
近 30 天下載
1.5萬
喜歡數
168
Pub 分數
150

安裝套件

flutter pub add timer_builder

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

TimerBuilder 是一個 Flutter 小部件,會自動根據基於時間的事件(例如週期性滴答或自訂定時計畫)來重新建構其 UI。它簡化了倒計時器、即時時鐘和即時更新的建立,無需手動管理狀態。該小部件支援動態定時邏輯,非常適合刷新間隔在執行期間變更的場景。它可在所有主要平台(包括 Android、iOS、Web、macOS、Windows 和 Linux)上運作。

適用情境

  • 實時鐘顯示
  • 倒數計時
  • 動態刷新間隔
  • 即時資料更新
  • 動畫倒數計時
  • 定期的UI刷新

主要特色

  • 於時間事件上重新建構
  • 支援動態定時
  • 跨平台相容性
  • 最小化樣板程式碼
  • 簡單 API
  • 不需要 Timer 物件

適合對象

  • 開發人員建構計時器
  • 需要即時更新的應用
  • 具有時間相關的內容的UI
  • 簡單的倒計時實現
  • 專案避免手動管理計時器

使用建議

  • 不適合高頻率更新
  • 需要小心處理 dispose
  • 如果誤用,可能會造成效能問題
  • 僅限基於時間的觸發
  • 不支援複雜排程

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

TimerBuilder

A widget that rebuilds itself on scheduled, periodic, or dynamically generated time events.

Here are some use cases for this widget:

  • When showing time since or until a specified event;
  • When the model updates frequently but you want to limit UI update frequency;
  • When showing current date or time;
  • When the representation a widget depends on a certain time event.

animated image

Examples

Periodic rebuild
import 'package:timer_builder/timer_builder.dart';

class ClockWidget extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return TimerBuilder.periodic(Duration(seconds: 1),
      builder: (context) {
        return Text("${DateTime.now()}");
      }
    );
  }
  
}
Rebuild on a schedule
import 'package:timer_builder/timer_builder.dart';

class StatusIndicator extends StatelessWidget {

  final DateTime startTime;
  final DateTime endTime;
  
  StatusIndicator(this.startTime, this.endTime);
  
  @override
  Widget build(BuildContext context) {
    return TimerBuilder.scheduled([startTime, endTime],
      builder: (context) {
        final now = DateTime.now();
        final started = now.compareTo(startTime) >= 0;
        final ended = now.compareTo(endTime) >= 0;
        return Text(started ? ended ? "Ended": "Started": "Not Started");
      }
    );
  }
  
}

所屬分類

原始碼儲存庫

使用此套件的專案