一区二区三区欧美日韩-一区二区三区欧美-一区二区三区免费在线视频-一区二区三区免费在线观看-久久精品店-久久精品第一页

歡迎您光臨深圳塔燈網(wǎng)絡科技有限公司!
電話圖標 余先生:13699882642

網(wǎng)站百科

為您解碼網(wǎng)站建設(shè)的點點滴滴

flutter學習第一彈

發(fā)表日期:2018-12 文章編輯:小燈 瀏覽次數(shù):1822

前言

???????隨著flutter1.0版本的發(fā)布,相信大多數(shù)移動開發(fā)者對flutter都會有很大的熱情,畢竟這是谷歌爸爸推廣的,現(xiàn)在學習的話肯定對以后的工作會大有幫助,那么今天我們就來學習flutter。

編碼

???????今天我們就來看看怎么用flutter來搭一個APP開發(fā)的架子,首先需要知道的是在flutter中有兩種Widget,一種是StatelessWidget,繼承這個類的widget在程序初始化的時候只走一次生命周期,所以比較適合顯示靜態(tài)的頁面,而如果你的頁面需要交互的話則是需要繼承StatefulWidget。說了那么多,咱們還是先上代碼看看吧(talk is cheap, show me the code~)

class AppPage extends StatefulWidget{ @override State<StatefulWidget> createState() { return _AppPageState(); } }class _AppPageState extends State<AppPage> with SingleTickerProviderStateMixin{ int _page = 0; PageController _pageController; final List<BottomNavigationBarItem> listBar = [BottomNavigationBarItem(title: Text("首頁"),icon:Icon(Icons.home),backgroundColor: Config.colorPrimary ), BottomNavigationBarItem(title: Text("備忘錄"),icon: Icon(Icons.border_color),backgroundColor: Config.colorPrimary), BottomNavigationBarItem(title: Text("知識"),icon: Icon(Icons.reorder),backgroundColor: Config.colorPrimary),];@override void initState() { _pageController = PageController(initialPage: this._page); }@override void dispose() { _pageController.dispose(); super.dispose(); }@override Widget build(BuildContext context) { return Scaffold( body: PageView( physics: NeverScrollableScrollPhysics(), children: <Widget>[ Home(), Memo(), knowledge() ], onPageChanged: _onPageChanged, controller: _pageController, ), bottomNavigationBar: BottomNavigationBar( items: listBar, currentIndex: _page, fixedColor: Config.colorPrimary, type: BottomNavigationBarType.fixed, onTap: _onTap,), ); }void _onPageChanged(int page){ setState(() { this._page = page; }); }void _onTap(int index){ _pageController.animateToPage(index, duration: const Duration(milliseconds: 500), curve: Curves.ease); } } 

???????這個類叫AppPage ,因為需要交互所以繼承了StatefulWidget,在手機上顯示的效果如下:


首頁.png

???????可以看到這其實就是一個APP的首頁,那么上面的代碼具體都有什么功能呢,且聽我一一道來:
???????1.首先我們需要定義個頁面AppPage(名字隨便?。?繼承自StatefulWidget,而繼承StatefulWidget的類都需要的返回一個新的繼承State的類,可能聽起來有點繞口,就如下圖所示,這種寫法是固定的,凡是繼承自StatefulWidget的widget都這樣寫就行了。


image.png

???????2.我們需要定義三個tab頁面,因為目前的flutter還是有些bug的,因為在tab切換的時候頁面的數(shù)據(jù)會重新加載,為了解決這種bug需要加上SingleTickerProviderStateMixin。然后需要定義三個tab按鈕


image.png

???????可以看到每個tab按鈕都是一個BottomNavigationBarItem,初始化BottomNavigationBarItem的方法也很簡單,就是把tab所需要展示的icon和title傳給BottomNavigationBarItem就行了。定義好了tab按鈕就需要把它放在頁面顯示出來了,那么flutter是怎樣展示頁面的呢?

image.png

???????Scaffold實現(xiàn)了基本的Material 布局,在Scaffold里面可以定義appbar,body等內(nèi)容,至于代表啥看名字就知道了,可以看到body里面是一個PageView(類似于android中的ViewPage),在PageView的children里面?zhèn)魅肓薍ome(),Memo(),knowledge()三個頁面分別代表上圖中的首頁,備忘錄,知識三個頁面。bottomNavigationBar代表底部的三個tab,里面參數(shù)的意思說一下,items代表具體的tabbar,就是我們之前在上面定義的BottomNavigationBarItem列表,currentIndex表示當前頁是第幾頁,onTap是具有水波紋效果的按鈕點擊事件。好了,第一篇關(guān)于flutter的文章就簡單的寫到這里了,有什么問題可以留言,大家一起開始學習flutter吧~

公眾號.jpg

???????同時,歡迎大家關(guān)注我公眾號,謝了?。。?/p>
本頁內(nèi)容由塔燈網(wǎng)絡科技有限公司通過網(wǎng)絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權(quán),如您認為本網(wǎng)頁中由涉嫌抄襲的內(nèi)容,請及時與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會在5工作日內(nèi)聯(lián)系您,一經(jīng)查實,本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://m.junxiaosheng.cn/17677.html

相關(guān)APP開發(fā)
 八年  行業(yè)經(jīng)驗

多一份參考,總有益處

聯(lián)系深圳網(wǎng)站公司塔燈網(wǎng)絡,免費獲得網(wǎng)站建設(shè)方案及報價

咨詢相關(guān)問題或預約面談,可以通過以下方式與我們聯(lián)系

業(yè)務熱線:余經(jīng)理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

主站蜘蛛池模板: 麻豆精品国产剧情观看| 男人插女人动态| 日本一区二区三区在线观看网站 | 久久99re热在线观看视频| 天天影视色欲 影视| 国产成人精品区在线观看| 色偷拍自怕亚洲在线| 国产成人精品视频频| 亚洲 欧美 日韩 国产 视频| 国产专区青青在线视频| 亚洲黄色官网| 久久国产精品久久国产精品 | 超碰98人人插| 色橹橹欧美在线观看视频高清| 国产91专区| 亚洲 欧美 制服 校园 动漫| 果冻传媒我的女老板| 亚洲色婷婷久久精品AV蜜桃久久| 精品无码一区二区三区不卡| 又爽又黄又粗又大免费视频| 男人J进女人P| 把腿张开再深点好爽宝贝动态图 | 又黄又湿免费高清视频| 免费视频久久只有精品| FREECHINESE东北群交| 神马伦理不卡午夜电影| 激情综合色| 99久久精品国内| 少妇的肉体AA片免费观看| 国产在线一区观看| 在线亚洲精品国产一区麻豆| 欧洲-级毛片内射八十老太婆| 国产成人综合95精品视频免费| 亚洲三级在线视频| 男人的天堂MV在线视频免费观看| 成人免费在线视频| 亚洲精品天堂在线| 欧美午夜免费观看福利片| 国产午夜精品鲁丝片| 99国产精品成人免费视频 | 国产在线综合色视频|