91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Flutter的一些技巧

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

掃碼添加小助手

加入工程師交流群

文章目錄

前言

轉(zhuǎn)變思維

命令式

聲明式

結(jié)論

總結(jié)

前言

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

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

轉(zhuǎn)變思維

其實(shí)移動(dòng)開(kāi)發(fā)者學(xué)習(xí)Flutter,最關(guān)鍵的就是要轉(zhuǎn)變思維。

眾所周知,F(xiàn)lutter的定位是一套跨平臺(tái)的UI工具箱,所以UI是學(xué)習(xí)Flutter的主要矛盾。下面是官方定義:

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

Flutter的UI設(shè)計(jì)采用的是聲明式的風(fēng)格,而Android/Ios采用的是命令式風(fēng)格。 由于我們習(xí)慣了命令式風(fēng)格,突然轉(zhuǎn)向Flutter的話,總是會(huì)以命令式的思維去思考,會(huì)遇到較大麻煩。只要轉(zhuǎn)變了思維,對(duì)于一個(gè)有經(jīng)驗(yàn)的Android/Ios開(kāi)發(fā)者而言,F(xiàn)lutter就變得非常簡(jiǎn)單了。那么什么是聲明式風(fēng)格?什么又是命令式風(fēng)格呢?多說(shuō)無(wú)益,實(shí)例走起…

假設(shè)現(xiàn)在有一個(gè)很簡(jiǎn)單的需求: UI上有個(gè)方塊,要求根據(jù)不同的情形展示不同的顏色,如下圖所示:

下面我們分別用命令式與聲明式實(shí)現(xiàn)上面的需求,看看有什么區(qū)別

命令式

上面的偽代碼展示了,不同條件下,我們通過(guò)調(diào)用View對(duì)象的方法setColor來(lái)修改其顏色屬性,從而達(dá)到改變其顏色的需求。

可見(jiàn),命令式是通過(guò)修改UI對(duì)象的狀態(tài)來(lái)達(dá)到改變UI顯示樣式的,這就意味著此UI對(duì)象必須是可變的,這就要求開(kāi)發(fā)者負(fù)責(zé)維護(hù)這些UI對(duì)象的狀態(tài)。

聲明式

上面的偽代碼展示了,不同的條件下,我們構(gòu)建新的顏色不一樣的View對(duì)象來(lái)實(shí)現(xiàn)改變其顏色的需求。

可見(jiàn),聲明式可以使View對(duì)象為不可變對(duì)象,每次改變UI都是構(gòu)建一個(gè)新的UI對(duì)象,而不是去修改其屬性。

結(jié)論

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

在Flutter中狀態(tài)和UI(Widget)是分開(kāi)的,當(dāng)我們要刷新UI的時(shí)候,只需要準(zhǔn)備好狀態(tài),然后Flutter框架就會(huì)使用這些新的狀態(tài)重新構(gòu)建新的Widget。

讓我們通過(guò)一個(gè)實(shí)例感受一下

下面的代碼,構(gòu)建了如下一個(gè)非常簡(jiǎn)單的頁(yè)面,由于我們isLoveAndroid為true,所以Flutter就為我們構(gòu)建了一個(gè)展示I love Android的Text控件。

總結(jié)

只要轉(zhuǎn)變了思維,在使用Flutter搭建UI的時(shí)候就會(huì)顯得很順暢,特別是設(shè)計(jì)復(fù)雜UI的時(shí)候,不會(huì)進(jìn)入死胡同。

責(zé)任編輯:xj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    4026

    瀏覽量

    134000
  • iOS
    iOS
    +關(guān)注

    關(guān)注

    8

    文章

    3401

    瀏覽量

    155497
  • ui
    ui
    +關(guān)注

    關(guān)注

    0

    文章

    210

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    爬壁機(jī)器人磁鐵的一些常見(jiàn)問(wèn)題

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

    關(guān)于六類網(wǎng)線一些問(wèn)題的解答

    今天我們就圍繞網(wǎng)友一些常見(jiàn)的關(guān)于六類網(wǎng)線的問(wèn)題進(jìn)行下匯總式解答: 問(wèn) 六類網(wǎng)線可以當(dāng)電源用嗎? 答 六類網(wǎng)線并不是設(shè)計(jì)用于傳輸電力的電纜,因此般不建議將其用于電源傳輸。 盡管六類網(wǎng)線的線芯可以
    的頭像 發(fā)表于 12-09 11:13 ?564次閱讀

    貼片電容精度J±5%的一些詳細(xì)知識(shí)

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

    Flutter 移動(dòng)端開(kāi)發(fā):集成淘寶 API 實(shí)現(xiàn)商品數(shù)據(jù)實(shí)時(shí)展示 APP

    在電商蓬勃發(fā)展的當(dāng)下,移動(dòng)端購(gòu)物成為主流趨勢(shì)。對(duì)于開(kāi)發(fā)者而言,利用 Flutter 構(gòu)建個(gè)能夠?qū)崟r(shí)展示淘寶商品數(shù)據(jù)的 APP,既能滿足用戶便捷獲取商品信息的需求,也能為電商業(yè)務(wù)拓展新的渠道
    的頭像 發(fā)表于 11-13 09:36 ?370次閱讀

    對(duì)浮點(diǎn)指令擴(kuò)展中一些問(wèn)題的解決與分享

    出現(xiàn)無(wú)法寫的情況。 結(jié)論 以上就是我們組在擴(kuò)展浮點(diǎn)指令中出現(xiàn)的一些問(wèn)題,這些問(wèn)題總體上歸結(jié)于對(duì)蜂鳥(niǎo)的代碼沒(méi)有整體性的把握,對(duì)內(nèi)容的掌握程度還不夠。在后續(xù)的工作中應(yīng)注意理清功能的整體架構(gòu)而對(duì)所有的相關(guān)部分進(jìn)行修改。
    發(fā)表于 10-24 11:47

    蜂鳥(niǎo)E203的浮點(diǎn)指令集F的一些實(shí)現(xiàn)細(xì)節(jié)

    蜂鳥(niǎo)E203的浮點(diǎn)指令集F的一些實(shí)現(xiàn)細(xì)節(jié) 既然E203不是多發(fā)射,且為了節(jié)省面積,一些指令使用FPU內(nèi)的同個(gè)子模塊來(lái)執(zhí)行,即FPU同時(shí)只能進(jìn)行種計(jì)算,我們只在FPU內(nèi)部署了11個(gè)
    發(fā)表于 10-24 08:57

    射頻工程師需要知道的一些常見(jiàn)轉(zhuǎn)接頭

    ,是由于轉(zhuǎn)接頭的損壞造成的,而且有些接頭的連接固定的方式不對(duì),每次修好的儀器,過(guò)去后客戶又按照他們?cè)瓉?lái)的方式去擰緊了。特別是在一些生產(chǎn)型的企業(yè),由于操作人員流動(dòng)性比較
    的頭像 發(fā)表于 08-06 17:39 ?1225次閱讀
    射頻工程師需要知道的<b class='flag-5'>一些</b>常見(jiàn)轉(zhuǎn)接頭

    Android Studio中的Gemini全面支持Dart和Flutter開(kāi)發(fā)

    在 Android Studio 中創(chuàng)建 Android 應(yīng)用的 Flutter 開(kāi)發(fā)者將迎來(lái)次重大的飛躍: Android Studio 中的 Gemini 已全面支持 Dart
    的頭像 發(fā)表于 08-06 13:52 ?1345次閱讀
    Android Studio中的Gemini全面支持Dart和<b class='flag-5'>Flutter</b>開(kāi)發(fā)

    使用 Flutter SDK 3.27.4構(gòu)建HarmonyOS應(yīng)用

    使用 Flutter SDK 3.27.4構(gòu)建HarmonyOS應(yīng)用 下載鴻蒙版flutter(3.27.4版本) 項(xiàng)目地址:https://gitcode.com/openharmony-sig
    的頭像 發(fā)表于 06-11 09:15 ?967次閱讀

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

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

    Debian和Ubuntu哪個(gè)好一些

    兼容性對(duì)比Debian和Ubuntu哪個(gè)好一些,并為您揭示如何通過(guò)RAKsmart服務(wù)器釋放Linux系統(tǒng)的最大潛能。
    的頭像 發(fā)表于 05-07 10:58 ?1148次閱讀

    在FX2LP USB上配置GPIF中斷時(shí)遇到一些問(wèn)題,求解決

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

    如何添加一些網(wǎng)絡(luò)上的庫(kù)到mpy固件的說(shuō)明或手冊(cè)教程?

    下有沒(méi)有關(guān)于如何添加一些網(wǎng)絡(luò)上的庫(kù)到mpy固件的說(shuō)明或手冊(cè)教程? 問(wèn)題2: 關(guān)于mpy的image庫(kù)在哪里能了解學(xué)習(xí)內(nèi)部代碼,只了解一些python,想知道怎么從c轉(zhuǎn)換成mpy能調(diào)用的,自己寫的c也能轉(zhuǎn)成py調(diào)用
    發(fā)表于 04-29 08:16

    樹(shù)莓派在自動(dòng)化控制項(xiàng)目中的一些潛在應(yīng)用

    自動(dòng)化控制項(xiàng)目中的一些潛在應(yīng)用。之前,我們已經(jīng)為Arduino平臺(tái)探討了相同的話題。我們確定Arduino是個(gè)出色的教育工具,但由于一些限制,它無(wú)法在工業(yè)環(huán)境中完全
    的頭像 發(fā)表于 03-25 09:45 ?624次閱讀
    樹(shù)莓派在自動(dòng)化控制項(xiàng)目中的<b class='flag-5'>一些</b>潛在應(yīng)用

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

    這也是我網(wǎng)絡(luò)上淘過(guò)來(lái)收藏的一些資料,免費(fèi)跟大家起分享下,建議下載哦,收藏不易
    發(fā)表于 03-17 20:17