? ? ? 我們創(chuàng)建一個(gè)Flutter項(xiàng)目后,運(yùn)行之后是一個(gè)空白頁(yè)面,在lib 目錄下有一個(gè)main.dart文件,main.dart文件中有一個(gè) main函數(shù),這個(gè)函數(shù)就是app 啟動(dòng)的入口,和iOS一樣,有一個(gè)主函數(shù),也是唯一的app入口。

此處,runApp 方法,這個(gè)方法就是app 界面的入口,在此處他接受一個(gè)?MaterialApp 類。上圖中 ?MyApp 返回一個(gè)MaterialApp 類型。在MyApp類中,重寫B(tài)uild方法,return 一個(gè)MaterialApp即可。如下圖。

在MaterialApp 中,需要調(diào)節(jié)很多參數(shù)去實(shí)現(xiàn)功能,相關(guān)屬性可以參考官網(wǎng)中Widget的MaterailApp 學(xué)習(xí),再次不做過(guò)多闡述。
這里的home 中 就可以展示widget 中的架構(gòu)去寫app 相關(guān)界面。
這里提醒一下iOS和安卓的區(qū)別,安卓在實(shí)體鍵或者最底下會(huì)有三個(gè)按鈕其中坐左邊有個(gè)實(shí)體鍵或者虛擬按鍵,具體功能是pop 控制器,這里有個(gè)強(qiáng)制回退界面的功能。再次需要設(shè)置Flutter 中一個(gè)屬性?WillPopScope
在MyHomePage 類中,重寫B(tài)uild 方法,返回?WillPopScope 類,并且實(shí)現(xiàn)WillPopScope 中的onWillPop 方法 實(shí)現(xiàn) 方法如下圖。這樣,安卓的返回按鍵在這個(gè)界面就會(huì)失效,此時(shí)就可以維護(hù)好當(dāng)前界面跳轉(zhuǎn)返回的問(wèn)題。

在這個(gè)MyHomePage 中 的child : 屬性中,添加整個(gè)App,????Scaffold 相當(dāng)于iOS的 viewController,可以在這里添加控制器,這里面可以添加很多屬性,很多功能直接實(shí)現(xiàn),使用很方便,參考官網(wǎng),上面已經(jīng)給與了鏈接。
這里還有一小細(xì)節(jié),闡述一下,一般app 中,剛開始是登錄界面,登錄界面 Flutter 的textfield ,會(huì)自動(dòng)上浮整個(gè)界面,約束溢出,這樣,就會(huì)出現(xiàn)溢出信息,黃黑條。這里有個(gè)小辦法可以很好的解決這個(gè)問(wèn)題,就是包一層SingleChildScrollView,這個(gè)類是一個(gè)簡(jiǎn)單scrollview ,可以跟隨鍵盤滾動(dòng),且不會(huì)溢出,很簡(jiǎn)單。
在Scaffold 的body 中包一層SingleChildScrollView ,可以完美解決上述溢出問(wèn)題。
這里就進(jìn)入一個(gè)簡(jiǎn)單的app 界面,之后就可以在child 展示整個(gè)app邏輯和界面了。