stream_timer_ui

一个简单的Flutter UI克隆,展示了一个利用Stream类实现的倒计时器。这是我对WRI作业之一的提交。

UI来自Dribbble上的Angelica Dovnar | Daily UI 14 – Countdown Timer

工作原理

有一个CountdownBloc,它基本上是一个流,每秒发出当前差值和下一个差值。我们需要下一个差值是因为我们需要提前一秒知道,这是因为计时动画的工作方式。它基本上会滚动到下一个“秒”,然后替换数字并重复重置动画。例如,当前时间差是20,动画将滚动到19,但19仍然在下一个时间差。这个信息用于确定是否要为时钟数字设置动画。

动画是通过AnimatedBuilderTransform.translate小部件实现的。为了获得滚动的数字效果,整个时钟显示被包裹在Wrap小部件中,以隐藏溢出的内容,就像CSS中的overflow: hidden一样。

在构建动画逻辑时,参考了brestnichki/humanbeans-clock

预览

2022-11-20_09-02-52.mp4

开发

这只是一个Flutter项目。你可以在Android Studio或VSCode中按F5键完成。当然,如果你不喜欢这些选项,你也可以在你的CLI中运行flutter run,但你将无法获得调试器附带的便利功能。

GitHub

查看 Github