Flutter?Widget?之StatefulBuilder構(gòu)建方法詳解
正文
你曾否意識(shí)到你需要拆分一個(gè)大型的構(gòu)建方法,但又覺(jué)得這聽(tīng)起來(lái)很費(fèi)勁?
試試StatefulBuilder 以最小的代價(jià)獲得一個(gè)個(gè)單獨(dú)的小部件的所有性能
想象一下,這樣的一個(gè)小部件,有一個(gè)可以切換單一標(biāo)志的便宜的子部件,然后是一個(gè)昂貴的小部件。
除非絕對(duì)必要,否則你不會(huì)想要重建它
bool isExpanded = false; Widget build(context) { return Column( children: [ InexpendsiveStateful( isExpanded: isExpanded, onTap: (bool newValue) => setState(() => isExpanded = val), ), ExpensiveStateless(), ] ); }
性能問(wèn)題解決
為了解決性能問(wèn)題,用一個(gè)StatefulBuilder來(lái)包裝Stateful部分,StatefulBuilder與builder類(lèi)似,除了傳遞給builder的那個(gè)額外的setState參數(shù)
bool isExpanded = falise; Widger build(context) { return Column( children: [ StatefulBuilder( builder: (ctx, setState) => InexpensiveStateful( isExpanded: isExpanded, onTap: (bool newValue) => setState(() => isExpanded = val), ) ), ExpensiveStateless(), ] ); }
為了善加利用這個(gè)嶄新的小部件,調(diào)用其特殊的setState函數(shù)來(lái)重建你的應(yīng)用程序的那一部分,當(dāng)那個(gè)onTap方法被調(diào)用setState時(shí),它就是你的StatefulBuilder的setState范圍
這意味著你的ExpensiveStateless小部件仍然沒(méi)有被觸動(dòng)
StatefulBuilder是一個(gè)很好的方法,可以從一個(gè)單獨(dú)的小部件中獲得所有的性能提升,而不需要做大部分的工作。
如果想了解有關(guān)# StatefulBuilder的內(nèi)容,或者關(guān)于Flutter的其他功能,請(qǐng)?jiān)L問(wèn)pub.dev
以上就是Flutter Widget 之StatefulBuilder構(gòu)建方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Flutter Widget StatefulBuilder的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android仿微信發(fā)送語(yǔ)音消息的功能及示例代碼
這篇文章主要介紹了Android仿微信發(fā)送語(yǔ)音消息的功能及示例代碼,需要的朋友參考下吧2017-08-08Android超實(shí)用的Toast提示框優(yōu)化分享
Toast是Android中用來(lái)顯示顯示信息的一種機(jī)制,和Dialog不一樣的是,Toast是沒(méi)有焦點(diǎn)的,而且Toast顯示的時(shí)間有限,過(guò)一定的時(shí)間就會(huì)自動(dòng)消失。那么這篇文章跟大家分享下Android中Toast的優(yōu)化,對(duì)大家日常開(kāi)發(fā)還是很實(shí)用,下面來(lái)一起看看吧。2016-09-09Android使用OkHttp發(fā)送post請(qǐng)求
這篇文章主要為大家詳細(xì)介紹了Android使用OkHttp發(fā)送post請(qǐng)求,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11Android實(shí)現(xiàn)圖片輪播效果的兩種方法
android圖片輪播效果非常漂亮,在程序開(kāi)發(fā)中也經(jīng)常用到,本文給大家分享android實(shí)現(xiàn)圖片輪播效果的幾種方法,對(duì)android實(shí)現(xiàn)圖片輪播相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-12-12Android自定義popupwindow實(shí)例代碼
這篇文章主要為大家詳細(xì)介紹了Android自定義popupwindow實(shí)例代碼,popupwindow彈出菜單效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11android滑動(dòng)解鎖震動(dòng)效果的開(kāi)啟和取消
在4.0的圓環(huán)滑動(dòng)解鎖中,我們點(diǎn)擊下去的時(shí)候會(huì)有震動(dòng)效果,因?yàn)檫@個(gè)控件設(shè)置的震動(dòng)效果沒(méi)有綁定設(shè)置中設(shè)置的觸摸振動(dòng)開(kāi)關(guān)來(lái)取消振動(dòng)效果,下邊這個(gè)例子實(shí)現(xiàn)了開(kāi)啟和取消的方法2013-06-06