国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Flutter的一些技巧

ss ? 來源:shusheng007 ? 作者:shusheng007 ? 2021-02-12 11:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

文章目錄

前言

轉變思維

命令式

聲明式

結論

總結

前言

Flutter 近兩年在江湖上崛起的非常迅猛,業已成為移動開發中不的不重視的一股力量。如果你是一個有追求的IOS/Android程序員,我想你非常有必要嘗試一下。

我接觸Android開發也有幾年了,前段時間公司大力推廣Flutter技術,所以有幸嘗試了一下。本人一直信奉善于總結是不斷進步的不二法寶,這樣你才能不斷的超越同行,不被裁員,所以在此準備以切身體驗提供一些快速掌握Flutter的一些技巧。

轉變思維

其實移動開發者學習Flutter,最關鍵的就是要轉變思維。

眾所周知,Flutter的定位是一套跨平臺的UI工具箱,所以UI是學習Flutter的主要矛盾。下面是官方定義:

Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase

Flutter的UI設計采用的是聲明式的風格,而Android/Ios采用的是命令式風格。 由于我們習慣了命令式風格,突然轉向Flutter的話,總是會以命令式的思維去思考,會遇到較大麻煩。只要轉變了思維,對于一個有經驗的Android/Ios開發者而言,Flutter就變得非常簡單了。那么什么是聲明式風格?什么又是命令式風格呢?多說無益,實例走起…

假設現在有一個很簡單的需求: UI上有個方塊,要求根據不同的情形展示不同的顏色,如下圖所示:

下面我們分別用命令式與聲明式實現上面的需求,看看有什么區別

命令式

上面的偽代碼展示了,不同條件下,我們通過調用View對象的方法setColor來修改其顏色屬性,從而達到改變其顏色的需求。

可見,命令式是通過修改UI對象的狀態來達到改變UI顯示樣式的,這就意味著此UI對象必須是可變的,這就要求開發者負責維護這些UI對象的狀態。

聲明式

上面的偽代碼展示了,不同的條件下,我們構建新的顏色不一樣的View對象來實現改變其顏色的需求。

可見,聲明式可以使View對象為不可變對象,每次改變UI都是構建一個新的UI對象,而不是去修改其屬性。

結論

所以在使用Flutter構建UI時千萬不要想著去修改UI對象的狀態(屬性),如果UI狀態變了,例如Textview的內容從I love android 變成了I love flutter, 不要想著調用Textview對象的方法去修改其文本,而是要以I love flutter為文本去構建一個新的Textview對象。剩下的就交給Flutter框架吧,其會幫你重新渲染那些必要的部分。

在Flutter中狀態和UI(Widget)是分開的,當我們要刷新UI的時候,只需要準備好狀態,然后Flutter框架就會使用這些新的狀態重新構建新的Widget。

讓我們通過一個實例感受一下

下面的代碼,構建了如下一個非常簡單的頁面,由于我們isLoveAndroid為true,所以Flutter就為我們構建了一個展示I love Android的Text控件。

總結

只要轉變了思維,在使用Flutter搭建UI的時候就會顯得很順暢,特別是設計復雜UI的時候,不會進入死胡同。

責任編輯:xj

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    4024

    瀏覽量

    133978
  • iOS
    iOS
    +關注

    關注

    8

    文章

    3401

    瀏覽量

    155486
  • ui
    ui
    +關注

    關注

    0

    文章

    209

    瀏覽量

    22387
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    爬壁機器人磁鐵的一些常見問題

    爬壁機器人近幾年比較火,它是類能夠在垂直墻面、天花板、傾斜表面上移動和作業的特種機器人,今天我們不聊其它,只聊下關于磁吸附應用中的磁鐵,以下是小編整理的關于爬壁機器人中磁鐵的一些常見問題。
    的頭像 發表于 01-09 10:06 ?263次閱讀
    爬壁機器人磁鐵的<b class='flag-5'>一些</b>常見問題

    關于六類網線一些問題的解答

    今天我們就圍繞網友一些常見的關于六類網線的問題進行下匯總式解答: 問 六類網線可以當電源用嗎? 答 六類網線并不是設計用于傳輸電力的電纜,因此般不建議將其用于電源傳輸。 盡管六類網線的線芯可以
    的頭像 發表于 12-09 11:13 ?558次閱讀

    貼片電容精度J±5%的一些詳細知識

    貼片電容精度J±5%表示電容的實際值與標稱值之間的偏差范圍在±5%以內 ,以下是關于貼片電容精度J±5%的一些詳細知識: 、精度等級含義 J±5% :字母“J”在貼片電容的標識中通常表示標稱精度
    的頭像 發表于 11-20 14:38 ?648次閱讀
    貼片電容精度J±5%的<b class='flag-5'>一些</b>詳細知識

    Flutter 移動端開發:集成淘寶 API 實現商品數據實時展示 APP

    在電商蓬勃發展的當下,移動端購物成為主流趨勢。對于開發者而言,利用 Flutter 構建個能夠實時展示淘寶商品數據的 APP,既能滿足用戶便捷獲取商品信息的需求,也能為電商業務拓展新的渠道
    的頭像 發表于 11-13 09:36 ?366次閱讀

    對浮點指令擴展中一些問題的解決與分享

    出現無法寫的情況。 結論 以上就是我們組在擴展浮點指令中出現的一些問題,這些問題總體上歸結于對蜂鳥的代碼沒有整體性的把握,對內容的掌握程度還不夠。在后續的工作中應注意理清功能的整體架構而對所有的相關部分進行修改。
    發表于 10-24 11:47

    蜂鳥E203的浮點指令集F的一些實現細節

    蜂鳥E203的浮點指令集F的一些實現細節 既然E203不是多發射,且為了節省面積,一些指令使用FPU內的同個子模塊來執行,即FPU同時只能進行種計算,我們只在FPU內部署了11個
    發表于 10-24 08:57

    射頻工程師需要知道的一些常見轉接頭

    ,是由于轉接頭的損壞造成的,而且有些接頭的連接固定的方式不對,每次修好的儀器,過去后客戶又按照他們原來的方式去擰緊了。特別是在一些生產型的企業,由于操作人員流動性比較
    的頭像 發表于 08-06 17:39 ?1221次閱讀
    射頻工程師需要知道的<b class='flag-5'>一些</b>常見轉接頭

    Android Studio中的Gemini全面支持Dart和Flutter開發

    在 Android Studio 中創建 Android 應用的 Flutter 開發者將迎來次重大的飛躍: Android Studio 中的 Gemini 已全面支持 Dart
    的頭像 發表于 08-06 13:52 ?1336次閱讀
    Android Studio中的Gemini全面支持Dart和<b class='flag-5'>Flutter</b>開發

    使用 Flutter SDK 3.27.4構建HarmonyOS應用

    使用 Flutter SDK 3.27.4構建HarmonyOS應用 下載鴻蒙版flutter(3.27.4版本) 項目地址:https://gitcode.com/openharmony-sig
    的頭像 發表于 06-11 09:15 ?962次閱讀

    Flutter on Raspberry Pi:從入門到精通的完整指南!

    在GoogleIO會議上展示了個在樹莓派上運行Flutter的可能性。然而,該會議并未提供全面的、步的指南供用戶參考。本文旨在填補這
    的頭像 發表于 06-06 15:37 ?1585次閱讀
    <b class='flag-5'>Flutter</b> on Raspberry Pi:從入門到精通的完整指南!

    Debian和Ubuntu哪個好一些

    兼容性對比Debian和Ubuntu哪個好一些,并為您揭示如何通過RAKsmart服務器釋放Linux系統的最大潛能。
    的頭像 發表于 05-07 10:58 ?1134次閱讀

    在FX2LP USB上配置GPIF中斷時遇到一些問題,求解決

    你好,我在 FX2LP USB 上配置 GPIF 中斷時遇到一些問題。 我啟用了 INT4 中斷并從 GPIF 中選擇了源 INT4,然后啟用了 GPIF 完成中斷,但我看不到中斷 4 工作。 我該如何做呢?
    發表于 05-06 08:00

    如何添加一些網絡上的庫到mpy固件的說明或手冊教程?

    下有沒有關于如何添加一些網絡上的庫到mpy固件的說明或手冊教程? 問題2: 關于mpy的image庫在哪里能了解學習內部代碼,只了解一些python,想知道怎么從c轉換成mpy能調用的,自己寫的c也能轉成py調用
    發表于 04-29 08:16

    樹莓派在自動化控制項目中的一些潛在應用

    自動化控制項目中的一些潛在應用。之前,我們已經為Arduino平臺探討了相同的話題。我們確定Arduino是個出色的教育工具,但由于一些限制,它無法在工業環境中完全
    的頭像 發表于 03-25 09:45 ?614次閱讀
    樹莓派在自動化控制項目中的<b class='flag-5'>一些</b>潛在應用

    收藏的一些庫存,直流無刷技術+源碼+論文(建議打包)

    這也是我網絡上淘過來收藏的一些資料,免費跟大家起分享下,建議下載哦,收藏不易
    發表于 03-17 20:17