類似錯誤No named parameter with the name ‘XXXXXX‘問題
創新互聯公司-專業網站定制、快速模板網站建設、高性價比漢川網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式漢川網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋漢川地區。費用合理售后完善,十年實體公司更值得信賴。
原因:Flutter版本問題
一、回退到指定版本
1、GitHub搜索flutter 點擊進入后,選擇tags找到需要的版本點進去,如圖:
2、復制版本號
cd ?/Users/apple/Documents/flutter ? ?根目錄,同bash_profile中PATH配置保持一致即可。
git reset --hard 3595343e20a61ff16d14e8ecc25f364276bb1b8b
執行完成,檢測 flutter --version
執行 flutter doctor
????????了
我想你想要的是:target.difference(DateTime.now()).toString().split('.')[0])
使用.split('.')[0]持續時間來去掉秒的分數。
其中target是DateTime對象。flutter計算給定小時的剩余時間,以秒為單位更新flutter,因此,時間以h:m:s為單位,例如,如果給定的時間是(6:27pm),我希望得到此結果(剩余時間02:21:02)。
打印結果:Text('Timeuntil${DateFormat.Hms().format(target)}');Text(target.difference(DateTime.now()).toString().split('.')[0])
首先,需要引用多語言庫
按如上文檔部署多語言后,就可以直接使用了
在日常開發中,總是需要將字符串轉化成指定格式的日期,可以使用DateFormat。
可以顯示多語言
更多格式輸出
常規操作,就是使用android studio編輯器,Flie--New--New Flutter Project
一路直接Next+Finish ,項目就創建成功了。
常規的運行到手機或者模擬器上就不說了,下面說下運行到web瀏覽器上。
如上圖,選擇最后一個是手機真機調試,選擇Chome或者Edge都可以運行到web瀏覽器中,選擇好后點擊綠色運行按鈕。
最近在寫一個flutter-ui庫,類似于antd一樣的ui庫,google了很久,都沒有發現一個類似antd這種國人喜歡用的ui庫,大部分都是國外的那種material ui,因為公司多個flutter項目都需要用,每次都是寫好幾遍,而且還很難維護所以才有了這個打算,第一個要寫的ui組件就是日歷組件,日歷的ui以及數據,都已經寫完了,目前正好需要給日歷寫控制器,所以才有了這篇文章
在無狀態組件當中,組件的ui由傳入它的參數決定的,組件本身的不需要管理狀態。而有狀態組件會有多種狀態,而它的狀態是可以通過外部控制器來控制的。比如TextField,創建一個controller可以給TextField賦值初始值,也可以通過controller來獲取到變化之后的value值,而這個控制器就是controller。可以用來控制一個有狀態組件的行為以及狀態的一個類
為什么要用controller呢,起初我也沒想明白為什么要用,因為傳參數也可以解決類似的問題啊,就拿TextField來說,
但后來我發現,很多組件內部的行為是沒辦法通過傳參數來控制的,尤其是在特殊的組件生命周期中,沒辦法實現,而通過controller,可以很好的解決這個問題,我自己感覺,controller的用處就是提供給外部操作當前組件的能力,包括組件的各種狀態,以及組件的各種行為,這里舉個栗子????
綜上,個人理解controller的作用就是暴露組件內部的行為,屬性給父元素,使父元素可以很方便使用子元素提供的參數,而不需要去實現監聽事件來獲取
回到正題,那么如何實現一個自己的controller呢,對我而言,不會就抄,抄誰的呢,當然是超官方的!讀官方的源碼,看它如何實現,然后我們加以模仿,不就是自己的了。竊書不能算偷……竊書!……讀書人的事,能算偷么?
這里借鑒了ScrollController的源碼,首先分析下源碼,以下是ScrollerController的源碼,我把看不懂的英文注釋刪掉了...本菜????看不懂就刪
看了看好像也沒多少東西,注意當前類的定義
是繼承了ChangeNotifier類,看著這個類頓時覺得好眼熟有沒有,對了,不就是我們平時寫provider用的那個東東嘛,查閱了官方文檔,具體是這么解釋的
用我這渣渣英語翻譯大概的意思就是,一個類,它可以被繼承,它可以被混合并且它提供了使用VoidCallback進行通知的 notification Api
盲猜和provider用法差不多,都是觀察者模式模式,父組件可以訂閱該controller的更改,當該controller通知其他監聽器的時候,監聽器的回調函數將被執行,上面ScrollController中的attach中正好也使用了notification方法來通知監聽者,具體滾動執行的過程沒有看到,但是大致了解了controller的工作原理
好了,知道原理了,開搞
首先得思考,這個controller會提供什么,按照我當前給日歷組件的設計,目前會給外部提供當前日歷所有的行為事件以及最終的值
目前我寫的controller很簡單,只需要給外部父容器提供上一個月,下一個月的方法可以使用就可以,所以我的控制器很簡單,只有兩個方法,并且方法執行完成之后進行消息通知,通知到各個訂閱者,也就是這里的日期組件 在日期組件的 initState方法中,對controller進行監聽,從而改變ui
最外層父容器是這樣的,當前demo用setState臨時刷新ui
看起來還不錯,還有一些ui上的交互需要后續去調整
未完待續...
最近入了flutter的坑,就想著做一行愛一行,也不能把自己的頭銜寫死了就只做前端,只寫頁面。flutter寫起來也蠻舒服的,加油,打工人!
作為一名開源愛好者,發掘優秀的開源項目是一件非常有趣的事情。在第一期中,我分享了單頁個人網站模板、組裝式 Flutter 應用框架、PHP 客戶端庫、Java 診斷工具等一些實用的庫和工具。本期依舊會為大家分享一些前端、后端、移動開發的相關工具,希望你能“淘”到適合自己的工具。
1.Vue-EasyTable
Vue-EasyTable 是一款基于 Vue2.x 的 table 組件,具備自適應、表頭與列固定、自定義單元格樣式、自定義 Loading 等功能。
2.React-Calendar
這是一款具備原生日期格式的日歷組件。它不依賴 Moment.js,支持日期選擇范圍,涵蓋了各國語言,開箱即用。
3.Matter
CSS 實現的 Material 組件合集項目,作者已將部分作品開源,效果可以在 CodePen 上查看。
4.Revery
Revery 是一款用于構建高性能、跨平臺桌面應用的框架。它類似于加速版的原生 Electron,除了擁有類似 React / Redux 的庫,還具備 GPU 加速渲染功能,其內置的編譯器速度也相當快。
5.Web Accessibility Guide
這是一個精選了 Web 可訪問性貼士、技巧和最佳實踐的開源項目,你將會學習到一些改善 Web 可訪問性的實用做法。
1.SOFAJRaft
SOFAJRaft 是螞蟻金服開源的生產級 Java Raft 算法庫,它基于 Raft 一致性算法的生產級高性能 Java 實現,支持 MULTI-RAFT-GROUP,適用于高負載低延遲的場景,易于使用。
2. Dragonwell
阿里開源了 OpenJDK 發行版 Dragonwell,它提供長期支持,包括性能增強和安全修復。在數據中心大規模 Java 應用部署情況下,可以大幅度提高穩定性、效率以及性能。
3.Lawoole
Lawoole 是一款基于 Laravel 和 Swoole 的高性能 PHP 框架。它兼具了 Laravel 的特點,還解決了其功能背后的性能問題。同時,你還能感受到與 Laravel 一樣的編碼體驗。
4.AntNest
AntNest 是一個簡潔、快速的異步爬蟲框架。它僅有 600 行代碼,基于 Python 3.6+.
5.PHP-Awesome
這個倉庫匯集了 PHP 優秀的資源,供你查詢和參考。
1.FlutterBoost
FlutterBoost 是閑魚開源的新一代 Flutter-Native 混合解決方案。它能夠幫你處理頁面的映射和跳轉,你只需要關心頁面的名字和參數即可。
2.MyLayout
MyLayout 是一套 iOS 界面視圖布局框架,可謂 iOS 下的界面布局利器。它集成了 iOS Autolayout、Size Classes、Android 的 5 大布局體系、HTML/CSS 的浮動定位技術以及 Flex-Box 和 Bootstrap 框架等主流的平臺的界面布局功能,并提供了一套簡單、完備的多屏幕尺寸適配的解決方案。
3.SegementSlide
SegementSlide 是一個 iOS UI 庫,它具備完整的滑滾及切換組件,旨在解決多層 UIScrollView 嵌套滾動的問題。
1.DevHub
DevHub 是一款跨平臺的 GitHub 通知管理客戶端,支持 Android、 iOS、網頁和桌面上使用,幫助你便捷的接收 GitHub 各類通知。
2.Reqman
Reqman 是一個幫助后端工程師進行 API 測試的工具,同時也是一個基于 Node.js 的爬蟲工具。
3.FreeCodeCamp
說到 FreeCodeCamp,或許大家不會陌生,而這個項目就是他們建立的開源課程和相應的代碼庫。網站提供了 6 大認證課程,也涉及了全棧開發認證。如果你感興趣,不妨了解下。
4.Gitter
Gitter 是 GitHub 小程序客戶端,作者采用 Taro 框架 + Taro UI 進行開發,而小程序內數據則來自 GitHub Api V3.
5.Awesome Podcasts
這個項目收集了各類實用的播客,涵蓋了主流的編程語言,希望對你提升技術水平有所幫助。
6.編程圖書大全
書籍不光能在你迷茫的時候,給予你答案,還能在你提升技能的時候,給予你幫助。這個倉庫收集了眾多編程圖書,涉及主流編程語言、人工智能、算法、Linux、大數據等。看看,有木有你需要的。
7.VS Code Netease Music
很多開發者喜歡邊寫代碼,邊聽音樂,VS Code Netease Music 這個插件就能滿足你在 VS Code 上聽歌的愿望。它使用 Webview 實現,不依賴命令行播放器。
Star-Battle
Star-Battle 是一款使用 JavaScript ES6、Canvas 開發的飛船射擊類 游戲 。來 Enjoy 吧。
注:
如需轉載,煩請按下方注明出處信息,謝謝!