Flutter 仿抖音效果 (一) 全屏點(diǎn)愛(ài)星
為東坡等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及東坡網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站建設(shè)、東坡網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
Flutter 仿抖音效果 (二) 界面布局
[Flutter 仿抖音效果 (三) 視頻播放列表] ( )
項(xiàng)目地址: 持續(xù)效果更新
1.基本的布局是簡(jiǎn)單的,外層通過(guò)Stack作為根
2.左邊點(diǎn)贊的控件組通過(guò)Align進(jìn)行統(tǒng)一布局
3.頂部控件組通過(guò)Positioned進(jìn)行布局,設(shè)置頂部距離,其實(shí)也可以用align,我們多使用幾種來(lái)習(xí)慣flutter的布局
4.底部同樣使用Positioned,設(shè)置底部距離
5.子頁(yè)面的左右滑動(dòng)使用PageView,一開(kāi)始我們要從推薦開(kāi)始左滑到關(guān)注,可以使用reverse屬性,不需要更多額外的操作
1.pageController監(jiān)聽(tīng)
刷新頂部的下劃線時(shí),我們一樣使用StreamController刷新,這樣效率比setstate高很多
2.歌曲名走馬燈效果
這個(gè)效果看起來(lái)挺麻煩的其實(shí)實(shí)現(xiàn)起來(lái)超級(jí)的簡(jiǎn)單用最普通的ListView就能快速的實(shí)現(xiàn)
首頁(yè)listview里面套入的是最簡(jiǎn)單的container+text
listview添加一個(gè)ScrollController做為滑動(dòng)的控制
使用一個(gè)定時(shí)器,把listview滑到最大的位置之后,在滑回去
先通過(guò)scroController.position.maxScrollExtent獲取最大位置,
然后通過(guò)scroController.animateTo進(jìn)行滑動(dòng),因?yàn)槲以O(shè)置一次循環(huán)的時(shí)間是3000毫秒,所以滑過(guò)去和滑回來(lái)的時(shí)間各占一般 new Duration(milliseconds: (time * 0.5).toInt()),還有就是歌名沒(méi)有大于最大寬度時(shí)候其實(shí)我們不需要進(jìn)行滑動(dòng),所以判斷maxScrollExtent是否大于0來(lái)確定是否進(jìn)行滑動(dòng)動(dòng)畫(huà)
MaterialApp 是我們app開(kāi)發(fā)中常用的符合MaterialApp Design設(shè)計(jì)理念的入口Widget。MaterialApp這個(gè)組件里面的參數(shù)比較多,而且一般在應(yīng)用入口會(huì)用到,所以這里把它內(nèi)部的所有參數(shù)都列出來(lái)了
基本用法:
可以看到我們?cè)?App 的最外層直接使用了 MaterialApp ,可以指定App的名稱( title ),App的主題樣式( theme ),首頁(yè)的組件( home ),路由跳轉(zhuǎn)配置)( routes ),關(guān)于路由跳轉(zhuǎn)我們?cè)诤竺娴恼鹿?jié)中會(huì)介紹
Scaffold 實(shí)現(xiàn)了基本的 Material Design 布局結(jié)構(gòu), Scaffold 在英文中的解釋為角手架,我們可以理解為樓體中的鋼架結(jié)構(gòu),通過(guò)它可以構(gòu)建一個(gè)頁(yè)面
在Flutter應(yīng)用開(kāi)發(fā)中,我們可以將 Scaffold 理解為一個(gè)布局的容器。可以在這個(gè)容器中繪制我們的用戶界面
下面是 MaterialApp + Scaffold 的組合的基本用法
AppBar 就是頂部的導(dǎo)航欄組件,支持自定義標(biāo)題,左右兩側(cè)的工具欄按鈕等
BottomNavigationBar 是底部的菜單欄組件
使用方法:
一般我們會(huì)定義一個(gè)全局變量如 _currentIndex 用于記錄當(dāng)前選中的下標(biāo)。然后在 onTap 屬性的回調(diào)方法中調(diào)用
setState(() { _currentIndex = index;}); 更新 _currentIndex 就可以實(shí)現(xiàn)底部菜單的切換。 BottomNavigationBar 一般會(huì)配合 BottomNavigationBarItem 一起使用(如下所示)
RefreshIndicator 是Flutter中的下拉刷新組件,一般配合 ListView 組件一起使用
Image 就類似于android中的 ImageView ,可以自定義圖片顯示的寬高
從網(wǎng)絡(luò)中加載圖片
從本地(File文件)加載圖片
從本地資源加載圖片
可以將byte數(shù)組加載成圖片
TextField 就類似于android的 EditText
PageView 就類似于android中的 ViewPager
在Flutter內(nèi)部機(jī)制中,默認(rèn)使用自動(dòng)管理導(dǎo)航機(jī)制,該機(jī)制在Flutter與原生混和開(kāi)發(fā)情況下,F(xiàn)lutter頁(yè)面不一定作為項(xiàng)目的首頁(yè)面,所以出現(xiàn)需要在首個(gè)Flutter頁(yè)面使用導(dǎo)航返回的需求。
Flutter的AppBar中定義有屬性:
該屬性默認(rèn)為YES,即默認(rèn)為自動(dòng)管理導(dǎo)航欄,該情況下其會(huì)在非第一個(gè)Flutter頁(yè)面創(chuàng)建導(dǎo)航返回按鈕,我們?cè)贏ppBar中將其設(shè)置為false:
并且手動(dòng)添加導(dǎo)航返回按鈕:
完成
網(wǎng)站題目:flutter首頁(yè),flutter flutter
標(biāo)題路徑:http://jinyejixie.com/article42/dsdjcec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、定制開(kāi)發(fā)、虛擬主機(jī)、域名注冊(cè)、品牌網(wǎng)站建設(shè)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)