腳手架實(shí)現(xiàn)了紙墨設(shè)計(jì)的基本布局結(jié)構(gòu)。在示例應(yīng)用程序中,我的主頁(yè)返回的是一個(gè)腳手架。也就是說(shuō),MaterialApp的孩子是腳手架Widget。
在紙張和油墨設(shè)計(jì)中定義的單個(gè)界面上的各種布局元素在腳手架中得到支持,例如抽屜、小吃店和底板。
腳手架有以下主要屬性:
appBar:顯示在界面頂部的一個(gè) AppBar,也就是 Android 中的 ActionBar 、Toolbarbody:當(dāng)前界面所顯示的主要內(nèi)容 WidgetfloatingActionButton:紙墨設(shè)計(jì)中所定義的 FAB,界面的主要功能按鈕persistentFooterButtons:固定在下方顯示的按鈕,比如對(duì)話框下方的確定、取消按鈕drawer:側(cè)邊欄控件backgroundColor: 內(nèi)容的背景顏色,默認(rèn)使用的是 ThemeData.scaffoldBackgroundColor 的值bottomNavigationBar: 顯示在頁(yè)面底部的導(dǎo)航欄resizeToAvoidBottomPadding:類(lèi)似于 Android 中的 android:windowSoftInputMode=”adjustResize”,控制界面內(nèi)容 body 是否重新布局來(lái)避免底部被覆蓋了,比如當(dāng)鍵盤(pán)顯示的時(shí)候,重新布局避免被鍵盤(pán)蓋住內(nèi)容。默認(rèn)值為 true。當(dāng)顯示任務(wù)欄或底部工作表時(shí),您需要使用當(dāng)前的BuildContext參數(shù)來(lái)調(diào)用ScaffoldState函數(shù)來(lái)獲取ScaffoldState對(duì)象,然后使用ScaffoldState.showSnackBar和ScaffoldState.showBottomSheet函數(shù)來(lái)顯示它。
請(qǐng)?zhí)貏e注意參數(shù)腳手架的構(gòu)建上下文。如果包含此構(gòu)建上下文的小部件是腳手架的父小部件,腳手架。找不到相應(yīng)的腳手架狀態(tài)對(duì)象,并且腳手架。將返回父對(duì)象中最近腳手架中的腳手架狀態(tài)對(duì)象。例如,如果您在腳手架的構(gòu)建功能中使用構(gòu)建的構(gòu)建上下文參數(shù),則可以:
@覆蓋
小部件構(gòu)建(BuildContext上下文){
returnnewRaisedButton按鈕(
子級(jí):新文本('顯示一個(gè)SNACKBAR '),
OnPreced:(){
(上下文)的腳手架。showSnackBar( newSnackBar(
內(nèi)容:新文本('你好!'),
));
},
);
}
如果構(gòu)建函數(shù)返回腳手架對(duì)象,由于腳手架對(duì)象是此小部件的子對(duì)象,因此無(wú)法通過(guò)使用此構(gòu)建的構(gòu)建上下文參數(shù)找到腳手架狀態(tài)對(duì)象。此時(shí),通過(guò)使用腳手架中的構(gòu)建器來(lái)提供新的構(gòu)建器:
@覆蓋
小部件構(gòu)建(BuildContext上下文){
returnnewScaffold(
appBar: newAppBar(
標(biāo)題:新文本(“演示”)
),
正文:newBuilder(
//創(chuàng)建一個(gè)內(nèi)部構(gòu)建上下文,以便onPressed方法
//可以參考()的帶腳手架的腳手架。
生成器:(BuildContext上下文){
returnnewCenter(
子項(xiàng):newRaisedButton(
子級(jí):新文本('顯示一個(gè)SNACKBAR '),
OnPreced:(){
(上下文)的腳手架。showSnackBar( newSnackBar(
內(nèi)容:新文本('你好!'),
));
},
),
);
},
),
);
}
此外,構(gòu)建功能中的Widget可以單獨(dú)創(chuàng)建,可以引入新的BuildContext來(lái)獲取Scaffold。
關(guān)于腳手架的例子,請(qǐng)查看示例項(xiàng)目中的使用模式。此外,具體的使用代碼將在后面的腳手架中介紹每個(gè)子小部件時(shí)進(jìn)行演示,比如AppBar的例子。
1.《scaffold Flutter 控件之 Scaffold》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《scaffold Flutter 控件之 Scaffold》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/guoji/843499.html