Flutter移動(dòng)應(yīng)用開(kāi)發(fā)夏輝課后參考答案_第1頁(yè)
Flutter移動(dòng)應(yīng)用開(kāi)發(fā)夏輝課后參考答案_第2頁(yè)
Flutter移動(dòng)應(yīng)用開(kāi)發(fā)夏輝課后參考答案_第3頁(yè)
Flutter移動(dòng)應(yīng)用開(kāi)發(fā)夏輝課后參考答案_第4頁(yè)
Flutter移動(dòng)應(yīng)用開(kāi)發(fā)夏輝課后參考答案_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1.ch01-Fultter簡(jiǎn)介1.概念題1)簡(jiǎn)述Flutter的Mterial組件。Material應(yīng)用程序以MaterialApp

widget開(kāi)始,該widget在應(yīng)用程序的根部創(chuàng)建了一些有用的widget。Material組件實(shí)現(xiàn)了視覺(jué)、效果、motion-rich的widget。包括App結(jié)構(gòu)和導(dǎo)航、輸入框和選擇框、對(duì)話框、Alert、Panel、信息展示、布局等。因此需要這些App基本組件基本都需要這個(gè)Material組件。簡(jiǎn)述StatelessWidget

和StatefulWedget的區(qū)別。StatelessWidget和StatefulWidget

是Flutter的兩個(gè)重要的組件,StatelessWidget用在控件不包含狀態(tài)信息,它不會(huì)依賴(lài)其他配置信息,例如文本控件(Text)、圖像控件(ImageView

),它們不會(huì)在運(yùn)行過(guò)程中改變。相反,如果你的控件是一些用戶交互控件或者隨著網(wǎng)絡(luò)變化,控件狀態(tài)有所改變,這樣情況就需要使用StatelessWidget。簡(jiǎn)述Flutter框架的優(yōu)勢(shì)Flutter由Google的工程師團(tuán)隊(duì)打造,用于創(chuàng)建高性能、跨平臺(tái)的移動(dòng)應(yīng)用。Flutter針對(duì)當(dāng)下以及未來(lái)的移動(dòng)設(shè)備進(jìn)行優(yōu)化,專(zhuān)注于AndroidandiOS低延遲的輸入和高幀率。Flutter可以給開(kāi)發(fā)者提供簡(jiǎn)單、高效的方式來(lái)構(gòu)建和部署跨平臺(tái)、高性能移動(dòng)應(yīng)用;給用戶提供漂亮、快速、jitter-free的app體驗(yàn)。2.操作題搭建Flutter環(huán)境,并且在模擬器中運(yùn)行第一個(gè)Flutter項(xiàng)目。詳細(xì)見(jiàn)課本創(chuàng)建Fluttter項(xiàng)目過(guò)程ch02-Dart語(yǔ)言基礎(chǔ)1.概念題1)簡(jiǎn)述Dart基本數(shù)據(jù)類(lèi)型。Dart內(nèi)置基本數(shù)據(jù)類(lèi)型主要包括:數(shù)值型-num、布爾型-boolean、鍵值對(duì)-Map、字符串-String、列表-List等。Dart構(gòu)造方法如何實(shí)現(xiàn)?Dart語(yǔ)言構(gòu)造方法主要通過(guò)下面四種方式實(shí)現(xiàn):(1)類(lèi)的構(gòu)造方法無(wú)法重載,這個(gè)是和其他面向?qū)ο笳Z(yǔ)言不同的一點(diǎn),如果需要重載構(gòu)造方法需要利用“對(duì)象.方法”;(2)常量構(gòu)造方法,即構(gòu)造方法前有一個(gè)const修飾符,常量構(gòu)造方法中的變量都必須是final類(lèi)型;(3)一種工廠構(gòu)造方法,當(dāng)我們需要?jiǎng)?chuàng)建一個(gè)新的對(duì)象或者從緩存中取一個(gè)對(duì)象時(shí),工廠構(gòu)造方法就派上了用場(chǎng)。(4)初始化列表是構(gòu)造方法中,主要形式為:類(lèi)名():賦值語(yǔ)句{}。Dart抽象類(lèi)和接口的區(qū)別?抽象類(lèi)不能實(shí)例化;抽型方法沒(méi)有實(shí)現(xiàn),方法前面不用加abstract抽象類(lèi)中可以有抽象方法,也可以沒(méi)有抽象方法如果一個(gè)類(lèi)中有抽象方法,那么這個(gè)類(lèi)必須被定義為抽象類(lèi)接口可以是抽象類(lèi),也可以是非抽象類(lèi);接口用implements

實(shí)現(xiàn),多個(gè)接口使用逗號(hào)隔開(kāi)一個(gè)類(lèi)實(shí)現(xiàn)接口,就必須重寫(xiě)這個(gè)接口的所有方法描述Mixins使用方法?Mixins是Dart中非常重要的一個(gè)概念,使用with來(lái)實(shí)現(xiàn)多繼承,來(lái)彌補(bǔ)Dart中單繼承的不足。Mixins類(lèi)似于多繼承,是在多繼承中重用一個(gè)類(lèi)代碼方式;作為Mixins類(lèi)不能有顯示構(gòu)造方法作為Mixins類(lèi)只能繼承自O(shè)bject使用關(guān)鍵詞with連接一個(gè)或者多個(gè)Mixins Mixins可以將幾個(gè)類(lèi)組合起來(lái)變成一個(gè)新類(lèi),使用起來(lái)非常靈活簡(jiǎn)述重載操作符步驟?在dart支持運(yùn)算符自定義重載,使用operator關(guān)鍵字定義重載函數(shù),格式為:返回值類(lèi)型operator操作符(參數(shù)1,參數(shù)2.....){ 實(shí)現(xiàn)體... return返回值}2.操作題使用抽象類(lèi)、接口和Mixins分別構(gòu)造學(xué)生成績(jī)管理模型:模型包括學(xué)生學(xué)號(hào)、姓名、成績(jī);學(xué)生來(lái)自三個(gè)不同專(zhuān)業(yè):軟件工程、網(wǎng)絡(luò)工程和計(jì)算機(jī)科學(xué)與技術(shù)。代碼參照例3-37

ch03-基本組件簡(jiǎn)述Flutter的按鈕組件使用方法。MaterialDesign中的button,是一個(gè)凸起的材質(zhì)矩形按鈕,包括:RaisedButton、FlatButton、OutlineButton、DropdownButton、IconButton、FloatingActionButton等。RaisedButton是一種普通按鈕,默認(rèn)是灰色背景和自帶陰影;FlatButton按鈕沒(méi)有陰影,按下后,會(huì)有灰色背景色;OutlineButton按鈕默認(rèn)有一個(gè)邊框,不帶陰影且背景透明。按下后,邊框顏色會(huì)變亮;IconButton是一個(gè)可點(diǎn)擊的Icon,不包括文字,默認(rèn)沒(méi)有背景,點(diǎn)擊后會(huì)出現(xiàn)背景。RaisedButton、FlatButton、OutlineButton等按鈕,可以在這些按鈕中添加ICON,可以做成不同樣式的按鈕.FloatingActionButton按鈕類(lèi)似圖標(biāo)按鈕,它是一個(gè)圓角按鈕,可以增加圖標(biāo)在按鈕上。Align、Stack和Positioned用法有何區(qū)別?對(duì)齊布局包括Align、Center組件。Align一般都是當(dāng)做一個(gè)控件的屬性,并沒(méi)有拿出來(lái)當(dāng)做一個(gè)單獨(dú)的控件。Align本身實(shí)現(xiàn)的功能并不復(fù)雜,設(shè)置child的對(duì)齊方式,例如居中、居左居右等,并根據(jù)child尺寸調(diào)節(jié)自身尺寸。Stack表示層疊布局。它和Android中的Frame相似,子組件可以根據(jù)距父容器四個(gè)角的位置來(lái)確定自身的位置Positioned。Stack允許子組件堆疊,Positioned用于根據(jù)Stack的四個(gè)角來(lái)確定子組件的位置。列出Flutter有幾種按鈕?MaterialDesign中的button,是一個(gè)凸起的材質(zhì)矩形按鈕,包括:RaisedButton、FlatButton、OutlineButton、DropdownButton、IconButton、FloatingActionButton等。如何使用Flutter列表組件?Flutter中的列表使用的比較頻繁,它可以沿一個(gè)方向線性排布所有子組件,通常構(gòu)造列表通過(guò)兩種方式:默認(rèn)構(gòu)造方法的children參數(shù)法和動(dòng)態(tài)列表。當(dāng)列表項(xiàng)比較多時(shí)候,就可以用動(dòng)態(tài)列表,即ListView.builder,下面將介紹可滾動(dòng)組件的構(gòu)造函數(shù),它是支持基于Sliver的懶加載模型的。2.操作題使用Flutter框架搭建一個(gè)注冊(cè)頁(yè)面,包括信息有:姓名、性別、年齡、愛(ài)好,點(diǎn)擊按鈕“注冊(cè)”,完成模擬注冊(cè)。答案參考例3-15

ch04-容器組件1.概念題1)簡(jiǎn)述Flutter框架的容器類(lèi)組件的使用方式。Flutter容器組件通常是指可以放置其它基本組件。Flutter容器類(lèi)組件包括Container、Padding、FittedBox、ConstrainedBox、SizedBox。這些容器組件中可以包含子組件。下面將介紹下Flutter中常用的容器組件。容器組件(Container)中可以放置其它基本組件,例如可以在容器中放文本、圖像等組件,容器組件(Container)中還可以對(duì)容器中增加各種效果,比如背景色、漸變效果、內(nèi)邊距、外邊距等效果;ConstrainedBox對(duì)其子項(xiàng)施加附加約束的widget,在約束條件上跟Container基本一致。該組件是在其子項(xiàng)上施加其他約束的窗口小部件。FittedBox會(huì)在自己的尺寸范圍內(nèi)縮放并且調(diào)整child位置,使得child適合其尺寸。做過(guò)移動(dòng)端的,可能會(huì)聯(lián)想到ImageView控件,它是將圖片在其范圍內(nèi),按照規(guī)則,進(jìn)行縮放位置調(diào)整。Padding組件可以給子組件添加指定的填充??梢蕴幚砣萜髋c子元素之間的距離。SizedBox對(duì)其子項(xiàng)施加附加約束的widget,在約束條件上跟Container基本一致。該組件是在其子項(xiàng)上施加其他約束的窗口小部件。簡(jiǎn)述ConstrainedBox參數(shù)具體含義child:表示子組件Constraints:約束子組件的條件屬性constraints是BoxConstraints類(lèi)型的,minWidth、maxWidth、minHeight和maxHeight都是constraints的屬性,去限制child組件大小利用SizedBox構(gòu)造出一個(gè)見(jiàn)示例4-6如何使用Flutter框架的Padding組件?見(jiàn)示例4-7第5章Flutter交互組件和導(dǎo)航欄1.概念題1)簡(jiǎn)述什么是Flutter有狀態(tài)Widget。Flutter的Statefulwidget是動(dòng)態(tài)的。用戶可以和其交互(例如輸入一個(gè)表單、或者移動(dòng)一個(gè)slider滑塊),或者可以隨時(shí)間改變(也許是數(shù)據(jù)改變導(dǎo)致的UI更新)。Checkbox,Radio,Slider,InkWell,Form,andTextField都是Statefulwidgets,他們都是StatefulWidget的子類(lèi)。簡(jiǎn)述Flutter交互組建有哪些?主要用法和區(qū)別。交互組件是和用戶進(jìn)行一定的交互,形成互動(dòng),F(xiàn)lutter的這類(lèi)組建包括:Draggable、LongPressDraggable、DargTarget、Dismissible等組件,這些組件都要繼承有狀態(tài)類(lèi)StatefulWidget

。Draggable組件可以使其子widget可拖動(dòng),LongPressDraggable組件和Draggable組件差不多,只不過(guò)前者是長(zhǎng)按組件拖拽事件,DragTarget是一個(gè)拖動(dòng)的目標(biāo)widget,在完成拖動(dòng)時(shí)它可以接收數(shù)據(jù),這個(gè)組件可以實(shí)現(xiàn)拖拽后刪除一項(xiàng)的效果。簡(jiǎn)述Navigator組件的幾種用法,用示例說(shuō)明。在Flutter中通過(guò)Navigator組件管理路由導(dǎo)航。Navigator組件目前有1.0和2.0兩個(gè)版本。Navigator1.0是通過(guò)Navigator來(lái)管理處理路由,而Navigator2.0則是通過(guò)Router來(lái)處理的,但是也需要Navigator,實(shí)際上是用Router對(duì)Navigator包裹起來(lái)。Router相對(duì)來(lái)說(shuō)功能就強(qiáng)大很多了,同時(shí)使用起來(lái)也復(fù)雜很多。示例見(jiàn)例5-6導(dǎo)航欄有哪幾種?說(shuō)明它們的使用和區(qū)別Flutter的導(dǎo)航欄常用的頂部導(dǎo)航欄TabBar、BottomNavigationBar、Drawer等。BottomNavigationBar組件是底部導(dǎo)航欄,這個(gè)組件是使用最為頻繁的一個(gè)組件,因?yàn)槊總€(gè)app都需要導(dǎo)航欄,TabBar組件和BottomNavigationBar組件一樣也是導(dǎo)航欄,既可以作為導(dǎo)航欄底部Tabbar切換,也可用于頂部Tabbar切換,在工作中使用頻率都比較高,F(xiàn)lutter很人性化,這些組件都提供好了。TabBarView組件和TabBar組件一樣也是導(dǎo)航欄,既可以作為導(dǎo)航欄底部Tabbar切換,也可用于頂部Tabbar切換Drawer是一個(gè)抽屜組件,一般是從左邊跳到右邊,在Scaffold組件里面?zhèn)魅雂rawer參數(shù)可以定義左側(cè)邊欄,傳入endDrawer可以定義右側(cè)邊欄。側(cè)邊欄默認(rèn)是隱藏的,我們可以通過(guò)手指滑動(dòng)顯示側(cè)邊欄,也可以通過(guò)點(diǎn)擊按鈕顯示側(cè)邊欄。

第6章Futter的對(duì)話框組件1.概念題1)簡(jiǎn)述什么是Flutter有哪些對(duì)話框組件。Flutter組件包括Dialog、AlertDialog、SimpleDialog、自定義對(duì)話框等。簡(jiǎn)述SimpleDialog組件的使用方法簡(jiǎn)單的對(duì)話框?yàn)橛脩籼峁┝硕鄠€(gè)選項(xiàng)之間的選擇。一個(gè)簡(jiǎn)單的對(duì)話框有一個(gè)可選的標(biāo)題,顯示在選項(xiàng)上方。常用構(gòu)造函數(shù)屬性和AlertDialog幾乎一樣。使用案例見(jiàn)例6-2簡(jiǎn)述BottomSheet組件的用法,用示例說(shuō)明。BottomSheet是一個(gè)從屏幕最下方彈出的對(duì)話框,下面表格是BottomSheet組件主要屬性。示例如例6-4所示自定義一個(gè)個(gè)性化對(duì)話框Flutter經(jīng)常會(huì)用到定制化的對(duì)話框組件,由于一般的對(duì)話框組件無(wú)法滿足用戶需求,因此常常會(huì)使用到定制化對(duì)話框組件,如增加圖片,樣式,文字等。示例如例6-7所示。

第7章事件監(jiān)聽(tīng)和處理1.概念題1)簡(jiǎn)述Flutter有哪些事件監(jiān)聽(tīng)組件。Flutter的事件的監(jiān)聽(tīng)和處理。包括指針事件處理、手勢(shì)識(shí)別、跨組件之間的事件處理等。事件的監(jiān)聽(tīng)、Flutter事件處理機(jī)制、事件總線等知識(shí)也涉及到。當(dāng)然對(duì)于前面章節(jié)的組件也會(huì)涉及到,比如按鈕、圖片、文字等組件的監(jiān)聽(tīng)和點(diǎn)擊觸發(fā)事件等。舉例說(shuō)明手勢(shì)監(jiān)聽(tīng)組件的使用方法。見(jiàn)示例7-2簡(jiǎn)述按鈕監(jiān)聽(tīng)組件的用法,用示例說(shuō)明。Flutter中使用Listener來(lái)監(jiān)聽(tīng)相關(guān)觸摸事件,一次完整的事件包括:手指按下、手指滑動(dòng)、手指離開(kāi)。如例7-7簡(jiǎn)述EventBus和Notification的用法,舉例說(shuō)明。EventBus是一種常用的傳遞事件總線方法,具體事件可以參考總線https://pub.dev/packages/event_bus。EventBus是一種常見(jiàn)的跨組件傳遞事件的方式,EventBus是一個(gè)全局的對(duì)象來(lái)管理者,使用第三方的EventBus依賴(lài)包,Notification中文意思是通知,與Android中的廣播機(jī)制類(lèi)似,在Flutter中Notification的功能是子節(jié)點(diǎn)狀態(tài)變更,發(fā)送通知上報(bào)。示例如例7-8,例7-9所示

Futter的動(dòng)畫(huà)和導(dǎo)航1.概念題1)簡(jiǎn)述什么是Flutter有哪些動(dòng)畫(huà)組件。Flutter的動(dòng)畫(huà),在Flutter中動(dòng)畫(huà)分為兩類(lèi):基于圖形動(dòng)畫(huà)(以圖形的形式制作動(dòng)畫(huà),三方庫(kù)animation_text_kit

、Rive、Lottie)、基于代碼動(dòng)畫(huà)(主要針對(duì)于Widgets的大小、顏色、形狀變動(dòng))。在Flutter中基于代碼動(dòng)畫(huà),也主要分為兩種形式:補(bǔ)間(Tween)動(dòng)畫(huà)、擬物動(dòng)畫(huà)。簡(jiǎn)述Tween組件的使用方法Tween意為在兩者之間,在Tween動(dòng)畫(huà)中我們定義開(kāi)始點(diǎn)和結(jié)束點(diǎn)、時(shí)間線以及定義轉(zhuǎn)換時(shí)間和速度的曲線。然后就交由框架完成如何從開(kāi)始點(diǎn)過(guò)渡到結(jié)束點(diǎn)的動(dòng)畫(huà)效果。Tween生成不同范圍或數(shù)據(jù)類(lèi)型的值,它用來(lái)定義從輸入范圍到輸出范圍到映射。也就是變化范圍。要使用Tween對(duì)象,需要調(diào)用其animate()方法,然后傳入一個(gè)控制器對(duì)象。簡(jiǎn)述Hero組件的用法,用示例說(shuō)明。Hero動(dòng)畫(huà)是從源路由飛到目標(biāo)路由的widget,可以在源路由定義一個(gè)Hero,為目標(biāo)路由定義另一個(gè)Hero,并為每個(gè)標(biāo)簽分配相同的標(biāo)簽。Flutter為具有匹配標(biāo)簽的hero配對(duì)。如示例8-2。使用第三方動(dòng)畫(huà)庫(kù)定義一個(gè)動(dòng)畫(huà)Flutter除了又Tween動(dòng)畫(huà)和Hero動(dòng)畫(huà),還有第三方包動(dòng)畫(huà),比如Animation、AnimatedTextKit等,使用它們之前需要插入第三方庫(kù),需要將依賴(lài)項(xiàng)添加到pubspec.yaml文件中。如示例8-3。

Futter的文件和網(wǎng)絡(luò)1.概念題1)簡(jiǎn)述什么是Flutter有文件操作方法。Flutter使用Dart語(yǔ)言進(jìn)行文件操作,通常需要導(dǎo)入io流包,F(xiàn)lutter一個(gè)比較重要的差異是文件系統(tǒng)路徑不同,DartVM是運(yùn)行在PC或服務(wù)器操作系統(tǒng)下,而Flutter是運(yùn)行在移動(dòng)操作系統(tǒng)(Android、iOS)中,這會(huì)導(dǎo)致文件系統(tǒng)有一些差異。文件操作包括文件的創(chuàng)建、數(shù)據(jù)寫(xiě)入、讀取數(shù)據(jù)、刪除文件等操作。因?yàn)槲募拔募A的操作依賴(lài)于path_provider,在項(xiàng)目的

pubspec.yaml

文件中添加依賴(lài)。舉例說(shuō)明Flutter異常處理方式。Flutter的異常處理和Java差不多,與Java不同的是Dart不檢測(cè)是否是聲明的,也就是說(shuō)方法或者函數(shù)不需要聲明要拋出哪些異常。Flutter異常主要常用的下面三方面:拋出異常、捕捉異常和重新捕捉異常。簡(jiǎn)述Flutter網(wǎng)絡(luò)連接的幾種用法,用示例說(shuō)明。Flutter的網(wǎng)路連接包括HttpCliient、Http方式和利用dio庫(kù)方式等,因此,F(xiàn)lutter主要實(shí)現(xiàn)方案有三種,一種是基于原生的HttpClient來(lái)實(shí)現(xiàn),另外兩種是基于第三方package來(lái)實(shí)現(xiàn):http與dio。簡(jiǎn)述說(shuō)明Flutter的Http使用方法常規(guī)的Http的GET和POST請(qǐng)求服務(wù)端接口數(shù)據(jù)以完成頁(yè)面部分展示邏輯。下面示例是使用Http包引用百度的網(wǎng)頁(yè)頁(yè)面,并且使用post方式加入頁(yè)面,具體如示例8-3所示。簡(jiǎn)述說(shuō)明Flutter的FutureBuilder的使用方法Future表示在接下來(lái)的某個(gè)時(shí)間的值或錯(cuò)誤,借助Future我們可以在Flutter實(shí)現(xiàn)異步操作

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論