Flutter?Widget之FutureBuilder使用示例詳解
正文
本質(zhì)上Flutter和Dart是異步的,Dart是Futures使你能夠管理IO而不用擔(dān)心線程或死鎖。

例如,從應(yīng)用程序外部加載數(shù)據(jù)需要時間,而Futures允許Dart先處理其他任務(wù)直到請求的數(shù)據(jù)可用。

涉及Future時 如何構(gòu)建Flutter小部件
輸入FutureBuilder
輸入FutureBuilder,這是處理Futures的構(gòu)造器
FutureBuilder(
future: _data,
builder: _myBuilderFunction,
)
FutureBuilder讓你輕松確定Future的當(dāng)前狀態(tài)并選擇在數(shù)據(jù)加載時和數(shù)據(jù)可用時顯示的內(nèi)容。

首先給FutureBuilder一個Future,但是等一下,你不想在FutureBuilder里創(chuàng)建Future。
正如這段代碼所代表

每次重建FutureBuilder的parent時都會重新開始獲取數(shù)據(jù)。

相反,早些獲得Future,就像在小部件生命周期方法一樣
initState didUpdateWidget didChangeDependencies
因此,創(chuàng)建新的狀態(tài)變量并將此數(shù)據(jù)獲取請求,從FutureBuilder移到initState,在那里我們會給它一個builder,但要確保使用connectionState檢查Future的狀態(tài),并在Future忙碌時顯示適當(dāng)?shù)男〔考?/p>
Future<MyData> _data;
initState() {
_data = http.get('http://awessome.data'),
}
FutureBuilder(
future: _data,
builder: (context, snapshot) {
if (snapshot.connectionState == done) {
return AwesomeData(snapshot.data);
} else {
return CircularProgressIndicator();
}
}
)

最后,在Future進行解析時最好檢查有沒有發(fā)生錯誤
if (snapshot.connectionState == done) {
if (snapshot.hasError) {
return SomethingWenWrong();
}
}

其他connectionStates
你也可以使用其他connectionStates
- ConnectionState.active
- ConnectionState.done
- ConnectionState.waiting
- ConnectionState.none
如果想了解有關(guān)FutureBuilder的內(nèi)容,或者關(guān)于Flutter的其他功能,請訪問flutter.dev
以上就是Flutter Widget之FutureBuilder使用示例詳解的詳細內(nèi)容,更多關(guān)于Flutter Widget FutureBuilder的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android復(fù)選框CheckBox與開關(guān)按鈕Switch及單選按鈕RadioButton使用示例詳解
這篇文章主要介紹了Android復(fù)選框CheckBox與開關(guān)按鈕Switch及單選按鈕RadioButton使用示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-09-09
Android中使用Toast.cancel()方法優(yōu)化toast內(nèi)容顯示的解決方法
做程序員的,基本一看api就知道,用這個可以取消上一個toast的顯示,然后顯示下一個,這樣就能解決出現(xiàn)的問題。可是在測試的過程中,發(fā)現(xiàn)卻沒有想象中的那么簡單,不信可以百度一下,很多很多人發(fā)現(xiàn)toast的cancel()方法不起作用2013-05-05
超簡單實現(xiàn)Android自定義Toast示例(附源碼)
本篇文章主要介紹了超簡單實現(xiàn)Android自定義Toast示例(附源碼),具有一定的參考價值,有興趣的可以了解一下。2017-02-02
設(shè)置Android設(shè)備WIFI在休眠時永不斷開的代碼實現(xiàn)
這篇文章主要介紹了設(shè)置Android設(shè)備WIFI在休眠時永不斷開的代碼實現(xiàn),需要的朋友可以參考下2014-07-07
Android實現(xiàn)手勢控制ImageView圖片大小
這篇文章主要介紹了Android實現(xiàn)手勢控制ImageView圖片大小的相關(guān)資料,需要的朋友可以參考下2016-02-02

