Flutter?Widget?之StatefulBuilder構(gòu)建方法詳解
正文
你曾否意識(shí)到你需要拆分一個(gè)大型的構(gòu)建方法,但又覺得這聽起來很費(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(),
]
);
}
性能問題解決
為了解決性能問題,用一個(gè)StatefulBuilder來包裝Stateful部分,StatefulBuilder與builder類似,除了傳遞給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ù)來重建你的應(yīng)用程序的那一部分,當(dāng)那個(gè)onTap方法被調(diào)用setState時(shí),它就是你的StatefulBuilder的setState范圍

這意味著你的ExpensiveStateless小部件仍然沒有被觸動(dòng)

StatefulBuilder是一個(gè)很好的方法,可以從一個(gè)單獨(dú)的小部件中獲得所有的性能提升,而不需要做大部分的工作。
如果想了解有關(guān)# StatefulBuilder的內(nèi)容,或者關(guān)于Flutter的其他功能,請(qǐng)?jiān)L問pub.dev
以上就是Flutter Widget 之StatefulBuilder構(gòu)建方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Flutter Widget StatefulBuilder的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android 3.0引入的異步加載機(jī)制Loader
Loader裝載器從android3.0開始引進(jìn)。它使得在activity或fragment中異步加載數(shù)據(jù)變得簡(jiǎn)單。下面我們就來詳細(xì)講解下2017-12-12
Android使用ViewDragHelper實(shí)現(xiàn)仿QQ6.0側(cè)滑界面(一)
這篇文章主要介紹了Android使用ViewDragHelper實(shí)現(xiàn)仿QQ6.0側(cè)滑界面(一)的相關(guān)資料,需要的朋友可以參考下2016-02-02
Android中Uri和Path之間的轉(zhuǎn)換的示例代碼
本篇文章主要介紹了Android中Uri和Path之間的轉(zhuǎn)換的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
flutter實(shí)現(xiàn)底部不規(guī)則導(dǎo)航欄
這篇文章主要為大家詳細(xì)介紹了flutter實(shí)現(xiàn)底部不規(guī)則導(dǎo)航欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
Android Volley擴(kuò)展實(shí)現(xiàn)支持進(jìn)度條的文件上傳功能
這篇文章主要為大家詳細(xì)介紹了Android Volley擴(kuò)展實(shí)現(xiàn)文件上傳與下載功能,支持進(jìn)度條,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12

