Skip to content

amchii/FloatingClock

Repository files navigation

悬浮时间

App 界面预览 App 界面预览

一个使用 Flutter 编写的轻量级应用,在 Android 上可将一个可拖动的时钟以悬浮窗形式显示在屏幕任意位置,支持多源时间同步与偏差显示。

主要特性

  • 可在 0.1 秒与 0.01 秒显示精度间切换,并提供多种暗色高亮(默认暗红)用于渲染快速变化的小数位,兼容悬浮窗与画中画显示(例如 12:34:56.7 / 12:34:56.78)。
  • 可在 Android 上以悬浮窗(Overlay)形式显示,可拖动、固定与关闭。
  • 支持多时间源(System、NTP、HTTP 等),并展示与系统时间的偏差(ms)。
  • 定期自动同步 NTP/HTTP 时间并保存最近同步记录。
  • 支持本地持久化用户添加的时间源(shared_preferences)。
  • 支持画中画模式(PiP)。

代码结构

  • lib/main.dart:应用入口,仅负责启动 MyApp 并引用具体页面。
  • lib/pages/HomePageAboutPage 等页面及其状态、UI、NTP/HTTP 同步、PlatformChannel、SharedPreferences 等业务逻辑。
  • lib/models/:定义 TimePrecision/TimeSource 以及相关序列化与持久化工具,供界面与服务重用。
  • test/:UI 测试位于 test/widget_test.dart,使用 SharedPreferences mock 并验证关键控件。

运行与测试

  • flutter pub get
  • flutter run
  • flutter test test/widget_test.dart