我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

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

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

当前flutter环境 2.8

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

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

flutter config --enable-<platform>-desktop

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

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

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

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

摸鱼开始事件处理

// handle moyu start action  FutureOr<void> _handleMoyuStart(      MoyuStarted event, Emitter<MoyuState> 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<void> _handleUpdateProgress(      MoyuProgressUpdated event, Emitter<MoyuState> emit) async {    final totalTime = event.totalTime;    final progressTime = event.progressTime;    emit(      MoyuIng(progress: progressTime / totalTime, progressTime: progressTime),    );  }

摸鱼结束,释放结束事件

// handle clock end  FutureOr<void> _handleMoyuEnd(      MoyuEnded event, Emitter<MoyuState> 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<MoYuBloc, MoyuState>(          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制作上班摸鱼应用

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

小编给大家分享一下怎么用flutter制作上班摸鱼应用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!网上最近看到了个摸鱼应用,还挺好玩的,我就自己用flutter写了一个。之前我有用flutter制作过mobile应用,但
2023-06-29

如何利用Flutter制作一个摸鱼桌面版App

这篇文章将为大家详细讲解有关如何利用Flutter制作一个摸鱼桌面版App,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Win10商店上架了一款名为《摸鱼》的App,在下载打开之后,这个Ap
2023-06-22

怎么用PyQT5制作一个桌面摸鱼工具

这篇文章主要介绍“怎么用PyQT5制作一个桌面摸鱼工具”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用PyQT5制作一个桌面摸鱼工具”文章能帮助大家解决问题。按键功能控制q 退出B 书签功能F
2023-06-29

怎么制作Flutter应用

这篇文章主要介绍怎么制作Flutter应用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. Flutter 是什么?Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美
2023-06-04

怎么用Flutter快速制作一个水印组件

本篇内容介绍了“怎么用Flutter快速制作一个水印组件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果通过child属性将水印叠加给子组
2023-07-05

在Linux操作系统上怎么部署Golang应用程序

今天小编给大家分享一下在Linux操作系统上怎么部署Golang应用程序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。安装G
2023-07-06

轻量应用服务器控制台怎么用的啊苹果手机上

轻量应用服务器控制台可以在以下iOS和Android应用中使用:在iPhone上访问:在应用商店中搜索"轻量应用服务器",并打开该应用。在Android上访问:在应用商店中搜索"轻量应用服务器",并打开该应用。在网站上打开轻量应用服务器:在网站上运行"轻量应用服务器"进程。使用轻量应用服务器控制台:运行轻量应用服务器控制台,该应用能够在轻量应用服务器控制台中提供所需的服务。您可以设置服
2023-10-26

轻量应用服务器怎么使用手机控制器的功能键操作

轻量应用服务器可以通过使用手机控制器中的按键来实现操作。以下是一些常用的手机控制器使用功能键操作:使用手机控制器上的功能键或按钮:这些按键或按钮可以用于执行许多操作,比如切换应用程序、设置提醒或发送消息等。用户可以通过手机控制器的功能键或按钮来执行这些操作。使用手机控制器的蓝牙键盘:使用手机控制器的蓝牙键盘可以执行许多手机应用程序的功能。用户可以通过蓝牙键盘来执行应用程序,也可以通过点亮手
2023-10-26

轻量应用服务器控制台在哪打开啊苹果13手机上怎么设置

轻量应用服务器控制台是一个方便快捷的应用程序,可以用于控制苹果13手机上的一些应用程序和功能的运行。在设置轻量应用服务器控制台时,你需要:打开AppStore应用商店。将iPhone连接到电脑。在AppStore应用商店中找到并下载轻量应用服务器控制台程序。运行轻量应用服务器控制台程序,如图所示。在界面中,选择“开发者”选项卡,然后将“轻量应用服务器控制台设置”链接发送到iPhone设备上的“开发者”应用程序开发者账号中。点击...
2023-10-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录