千家信息网

怎么用flutter制作上班摸鱼应用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下怎么用flutter制作上班摸鱼应用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!网上最近看到了个摸鱼应用,还挺好玩的,我就自己用flutter写了一个。之前我有用
千家信息网最后更新 2026年11月02日怎么用flutter制作上班摸鱼应用

小编给大家分享一下怎么用flutter制作上班摸鱼应用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

网上最近看到了个摸鱼应用,还挺好玩的,我就自己用flutter写了一个。

之前我有用flutter制作过mobile应用,但是没有在desktop尝试过;毕竟2.0大更新,我这里就在这试手一下,并说说flutter的体验.

当前flutter环境 2.8

增加flutter desktop支持 (默认项目之存在ios,android项目包)

flutter config --enable--desktop

我这里是mac,因此platform=macos,详细看flutter官网

代码十分简单,UI部分就不讲了

在摸鱼界面,我是用了 Bloc 做倒计时计算逻辑,默认摸鱼时长15分钟

 MoYuBloc() : super(MoyuInit()) {    on(_handleMoyuStart);    on(_handleUpdateProgress);    on(_handleMoyuEnd);  }

摸鱼开始事件处理

// handle moyu start action  FutureOr _handleMoyuStart(      MoyuStarted event, Emitter emit) async {    if (_timer != null && _timer!.isActive) {      _timer?.cancel();    }     final totalTime = event.time;    int progressTime = state is MoyuIng ? (state as MoyuIng).progressTime : 0;     _timer = Timer.periodic(const Duration(seconds: 1), (timer) {      add(MoyuProgressUpdated(totalTime, ++progressTime));       if (progressTime >= totalTime) {        timer.cancel();        add(MoyuEnded());      }    });    emit(MoyuIng(progress: 0, progressTime: 0));  }

摸鱼进度更新

// handle clock update  FutureOr _handleUpdateProgress(      MoyuProgressUpdated event, Emitter emit) async {    final totalTime = event.totalTime;    final progressTime = event.progressTime;    emit(      MoyuIng(progress: progressTime / totalTime, progressTime: progressTime),    );  }

摸鱼结束,释放结束事件

// handle clock end  FutureOr _handleMoyuEnd(      MoyuEnded event, Emitter emit) async {    emit(MoyuFinish());  }

总结3个event (摸鱼开始,进程更新,摸鱼结束)

abstract class MoyuEvent {} class MoyuStarted extends MoyuEvent {  final int time;  final System os;   MoyuStarted({required this.time, required this.os});} class MoyuProgressUpdated extends MoyuEvent {  final int totalTime;  final int progressTime;   MoyuProgressUpdated(this.totalTime, this.progressTime);} class MoyuEnded extends MoyuEvent {  MoyuEnded();}

其中3个state (摸鱼初始,正在摸鱼,摸鱼结束)

abstract class MoyuState {} class MoyuInit extends MoyuState {} class MoyuIng extends MoyuState {  final double progress;  final int progressTime;   MoyuIng({required this.progress, required this.progressTime});} class MoyuFinish extends MoyuState {}

启动摸鱼使用, 记录总时长和消耗时间,计算进度百分比,更新UI进度条

下面是界面更新逻辑

BlocConsumer(          builder: (context, state) {            if (state is MoyuIng) {              final progress = state.progress;               return _moyuIngView(progress);            } else if (state is MoyuFinish) {              return _replayView();            }            return const SizedBox();          },          listener: (context, state) {},          listenWhen: (pre, cur) => pre != cur,        ),

很简单 最重要的是进度状态,其次结束后是否重新摸鱼按钮

构建运行flutter应用

flutter run -d macos

最后结果展示

看完了这篇文章,相信你对"怎么用flutter制作上班摸鱼应用"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

应用 更新 进度 制作 事件 时长 界面 篇文章 逻辑 项目 好玩 重要 倒计时 代码 完了 按钮 时间 更多 有用 正在 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 亿人帮互联网科技有限公司 互联网科技工作委员会副主任毛军 互联网科技行业发展 易互联网科技有限公司 互联网科技公司有哪些 互联网巨头投资的硬核科技 央行互联网金融科技公司 互联网经济与金融科技 速维有品互联网信息科技(苏州)有限公司 互联网保险科技创业 互联网科技创新的路径 佛山市拉法互联网科技有限公司 科技赋能视角下互联网保险发展 滨湖区互联网智能科技产品有哪些 工业互联网山东科技大学 互联网科技品牌 10位科技互联网大佬 恒生互联网科技趋势 高科技和互联网的现代国家 株洲百竞科技的互联网营销顾问 耶加雪菲 疫情对互联网科技公司影响 港股互联网科技股 极限挑战互联网科技 互联网金融科技创新 互联网 科技服务平台 居家互联网科技有限公司 佳云科技和互联网广告 智帮互联网科技公司最近动向 互联网科技包装股份有限公司上市
0