最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Flutter學(xué)習(xí)(二)基礎(chǔ)知識(shí)

2023-09-05 14:10 作者:shiaouz  | 我要投稿

Dart語(yǔ)言的基本知識(shí)必須要掌握,關(guān)鍵字和運(yùn)算符必須至少學(xué)習(xí)一遍。網(wǎng)上有很多教程,此處不展開(kāi)來(lái)講??梢詤⒖脊俜轿臋nhttps://flutter.cn/docs/resources/bootstrap-into-dart。

Flutter應(yīng)用中,所有用戶看到的“東西”皆是Widget。圖片、按鈕、文字這些常規(guī)的控件是我們熟悉的,還有布局(Stack,Align,F(xiàn)lex,ListView等),邊距(Padding),可視(Visibility)等等,它們都是Widget。

下面看看Hello World中的兩個(gè)Widget:

MaterialApp:Flutter自帶的主題Widget,可以設(shè)置各種主題顏色,包含更多主題的Widget,例如Scaffold,TextField等。如果不用MaterialApp會(huì)怎樣?結(jié)果就是連個(gè)輸入框都沒(méi)有,需要造輪子或者找輪子。

Scaffold:依賴MaterialApp的一個(gè)排版布局的Widget,支持很多功能,如標(biāo)題,左邊返回按鈕,右邊工具按鈕,底部導(dǎo)航等。

其他Widget就不一一介紹了,想用的時(shí)候再去找就行。想查看全部Widget可以參考官方文檔https://flutter.cn/docs/reference/widgets。


當(dāng)我們學(xué)會(huì)了寫界面的時(shí)候,接下來(lái)要做的大概就是界面的跳轉(zhuǎn)和返回,這里貼一下自定義的方法:

void push(BuildContext context,Widget widget, {OnRouteResult? callback}) {

? ? Navigator.of(context).push(MaterialPageRoute<ApiResult>(builder: (context) => widget)).then((value) {

? ? ? callback?.call(value ?? ResultImpl(-1, "cancel"));

? ? });

? }

void pop(BuildContext context,[ApiResult? result]) {

? ? Navigator.of(context).maybePop(result);

? }

context:Widget內(nèi)的變量,StatelessWidget中只有build方法才能獲得context對(duì)象,可以在按鈕的回調(diào)方法可以這么寫onPressed: () => _doSomething(context),這樣就可以拿到context對(duì)象;

widget:需要跳轉(zhuǎn)的界面;

callback:需要監(jiān)聽(tīng)從widget返回時(shí)攜帶的數(shù)據(jù);

Navigator:Flutter的路由功能類;

MaterialPageRoute:Navigator.push方法的參數(shù),MaterialPageRoute<ApiResult>表示widget返回的數(shù)據(jù)是ApiResult抽象類型,ResultImpl是ApiResult的實(shí)例;

then:Dart異步知識(shí),不知道需要去學(xué)習(xí)Dart異步Future;

value:widget返回時(shí)攜帶的數(shù)據(jù),可以是空。




Flutter學(xué)習(xí)(二)基礎(chǔ)知識(shí)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
宜君县| 茌平县| 白山市| 顺义区| 永春县| 仙桃市| 漯河市| 无为县| 尚志市| 万全县| 乌鲁木齐市| 日喀则市| 屯昌县| 姚安县| 枣庄市| 隆德县| 饶平县| 翁牛特旗| 山西省| 石渠县| 福州市| 务川| 阳春市| 灵石县| 金堂县| 鄂伦春自治旗| 皮山县| 宣化县| 来凤县| 宜兰市| 辉县市| 文山县| 山西省| 集安市| 呼伦贝尔市| 贵港市| 高雄市| 阜宁县| 于都县| 溆浦县| 蒙自县|