最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解用flutter制作上班摸魚應(yīng)用

 更新時(shí)間:2022年03月23日 09:28:57   作者:niceguynum2  
本文主要介紹了用flutter制作上班摸魚應(yīng)用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

網(wǎng)上最近看到了個(gè)摸魚應(yīng)用,還挺好玩的,我就自己用flutter寫了一個(gè)。

之前我有用flutter制作過(guò)mobile應(yīng)用,但是沒(méi)有在desktop嘗試過(guò);畢竟2.0大更新,我這里就在這試手一下,并說(shuō)說(shuō)flutter的體驗(yàn).

當(dāng)前flutter環(huán)境 2.8

增加flutter desktop支持 (默認(rèn)項(xiàng)目之存在ios,android項(xiàng)目包)

flutter config --enable-<platform>-desktop

我這里是mac,因此platform=macos,詳細(xì)看flutter官網(wǎng)

 代碼十分簡(jiǎn)單,UI部分就不講了

在摸魚界面,我是用了 Bloc 做倒計(jì)時(shí)計(jì)算邏輯,默認(rèn)摸魚時(shí)長(zhǎng)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));
  }

摸魚進(jìn)度更新

// 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),
    );
  }

摸魚結(jié)束,釋放結(jié)束事件

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

總結(jié)3個(gè)event (摸魚開始,進(jìn)程更新,摸魚結(jié)束)

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個(gè)state (摸魚初始,正在摸魚,摸魚結(jié)束)

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 {}

啟動(dòng)摸魚使用, 記錄總時(shí)長(zhǎng)和消耗時(shí)間,計(jì)算進(jìn)度百分比,更新UI進(jìn)度條 

下面是界面更新邏輯

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,
        ),

很簡(jiǎn)單 最重要的是進(jìn)度狀態(tài),其次結(jié)束后是否重新摸魚按鈕

構(gòu)建運(yùn)行flutter應(yīng)用

flutter run -d macos 

 最后結(jié)果展示

總結(jié)下flutter desktop使用

  • 簡(jiǎn)單上手,按著官網(wǎng)走基本沒(méi)問(wèn)題,基本上沒(méi)踩上什么雷,可能項(xiàng)目比較簡(jiǎn)單
  • 構(gòu)建流程簡(jiǎn)單,hot reload強(qiáng)大
  • 性能強(qiáng)大,啟動(dòng)速度很快,并且界面無(wú)頓挫感

比較遺憾的事desktop電腦構(gòu)建系統(tǒng)獨(dú)立,mac環(huán)境下無(wú)法構(gòu)建windows應(yīng)用,有點(diǎn)小遺憾.

項(xiàng)目完全開源 可以前往GitHub查看 不要忘點(diǎn)個(gè)star??

https://github.com/lau1944/moyu_app

到此這篇關(guān)于詳解用flutter制作上班摸魚應(yīng)用的文章就介紹到這了,更多相關(guān)flutter  摸魚應(yīng)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android?Jetpack組件ViewModel基本用法詳解

    Android?Jetpack組件ViewModel基本用法詳解

    這篇文章主要為大家介紹了Android?Jetpack組件ViewModel基本用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Android3.0 ActionBar導(dǎo)航標(biāo)題欄使用解析

    Android3.0 ActionBar導(dǎo)航標(biāo)題欄使用解析

    這篇文章主要為大家詳細(xì)解析了Android3.0 ActionBar導(dǎo)航標(biāo)題欄的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android getSystemService用法實(shí)例總結(jié)

    Android getSystemService用法實(shí)例總結(jié)

    這篇文章主要介紹了Android getSystemService用法,結(jié)合實(shí)例形式總結(jié)分析了getSystemService獲取系統(tǒng)Service的相關(guān)使用方法與注意事項(xiàng),需要的朋友可以參考下
    2016-01-01
  • android使用ViewPager實(shí)現(xiàn)圖片自動(dòng)切換

    android使用ViewPager實(shí)現(xiàn)圖片自動(dòng)切換

    這篇文章主要為大家詳細(xì)介紹了android使用ViewPager實(shí)現(xiàn)圖片自動(dòng)切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Android畫板開發(fā)之撤銷反撤銷功能

    Android畫板開發(fā)之撤銷反撤銷功能

    這篇文章主要為大家詳細(xì)介紹了Android畫板開發(fā)之撤銷,反撤銷功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Android實(shí)時(shí)文件夾創(chuàng)建方法

    Android實(shí)時(shí)文件夾創(chuàng)建方法

    這篇文章主要介紹了Android實(shí)時(shí)文件夾創(chuàng)建方法,涉及基于Activity實(shí)現(xiàn)文件實(shí)時(shí)查詢的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • 一款A(yù)ndroid APK的結(jié)構(gòu)構(gòu)成解析

    一款A(yù)ndroid APK的結(jié)構(gòu)構(gòu)成解析

    本篇文章介紹了我在學(xué)習(xí)過(guò)程中對(duì)于Android 程序的理解總結(jié),刨析了apk的組成與產(chǎn)生過(guò)程,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下
    2021-10-10
  • TableLayout(表格布局)基礎(chǔ)知識(shí)點(diǎn)詳解

    TableLayout(表格布局)基礎(chǔ)知識(shí)點(diǎn)詳解

    在本文里我們給大家分享了關(guān)于TableLayout(表格布局)的相關(guān)基礎(chǔ)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-02-02
  • Flutter路由守衛(wèi)攔截的實(shí)現(xiàn)

    Flutter路由守衛(wèi)攔截的實(shí)現(xiàn)

    路由守衛(wèi)攔截最常見的應(yīng)用場(chǎng)景就是對(duì)用戶數(shù)據(jù)權(quán)限的校驗(yàn),本文主要介紹了Flutter路由守衛(wèi)攔截的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • android計(jì)算pad或手機(jī)的分辨率/像素/密度/屏幕尺寸/DPI值的方法

    android計(jì)算pad或手機(jī)的分辨率/像素/密度/屏幕尺寸/DPI值的方法

    本文將介紹手機(jī)布局/界面設(shè)計(jì)/分辨率/密度相關(guān),接下來(lái)介紹android計(jì)算pad或手機(jī)的分辨率像素等等的方法,感興趣的朋友可以了解下,希望本文可以幫助你
    2013-01-01

最新評(píng)論

睢宁县| 和静县| 安泽县| 莱芜市| 运城市| 尉犁县| 洮南市| 内丘县| 江达县| 临邑县| 隆德县| 遂川县| 南京市| 台安县| 沙湾县| 洛川县| 阜南县| 青阳县| 囊谦县| 天台县| 平顺县| 阿图什市| 清徐县| 日照市| 德钦县| 锡林郭勒盟| 五原县| 合阳县| 松原市| 泌阳县| 防城港市| 赤峰市| 常山县| 张家界市| 阳高县| 苍山县| 峨眉山市| 虹口区| 乐山市| 同德县| 黄大仙区|