Flutter實(shí)現(xiàn)增強(qiáng)版的頁(yè)面懸浮按鈕的示例代碼
前言
Flutter 自帶的 FloatingActionButton
為我們提供了一個(gè)懸浮在頂部的按鈕,這個(gè)按鈕始終在最頂層,因此可以做一些快捷的操作。比如,滾動(dòng)列表時(shí)點(diǎn)擊該按鈕回到頂部。然而,如果我們有多個(gè)操作需要懸浮在頂部的時(shí)候,一個(gè) FloatingActionButton
就不夠了。這個(gè)時(shí)候也不適合將多個(gè)按鈕同時(shí)懸浮在頁(yè)面頂部,那就需要點(diǎn)開(kāi)一個(gè) FloatingActionButton
再?gòu)棾龈嗖僮鱽?lái)。這個(gè)實(shí)現(xiàn)還挺復(fù)雜的,不過(guò)已經(jīng)有人幫我們搞定了。這就是增強(qiáng)版的 FloatingActionButton
—— SpeedDial
組件,組件地址:flutter_speed_dial。下面是SpeedDial
組件的官方示例運(yùn)行效果。
SpeedDial 使用
在使用 FloatignActionButton
的地方就可以直接使用 SpeedDial
替換。所不同的是,SpeedDial
有一個(gè) children
屬性,可以添加多個(gè)SpeedDialChild
組件作為點(diǎn)擊 SpeedDial
彈出的更多操作。同時(shí),SpeedDial
還提供了很多個(gè)性化的參數(shù)。SpeedDial
的參數(shù)很多,這里不一一列舉了,我們挑幾個(gè)重要的參數(shù)說(shuō)明一下。其他參數(shù)大家可以看一下源碼, SpeedDial
的源碼注釋得非常好。
overlayColor
:點(diǎn)擊后彈出的蒙層顏色。overlayOpacity
:點(diǎn)擊后彈出的蒙層透明度。例如,如果要黑色半透明,那么需要將overlayColor
設(shè)置為黑色,然后overlayOpacity
設(shè)置為0.5。icon
:按鈕的圖標(biāo),可以用icon
來(lái)設(shè)置圖標(biāo)按鈕。當(dāng)然也可以使用child
參數(shù)設(shè)置自定義的樣式。activeIcon
:展開(kāi)后的圖標(biāo),用來(lái)區(qū)分當(dāng)前按鈕活躍的狀態(tài)。buttonSize
:按鈕的寬高尺寸;childrenButtonSize
:展開(kāi)按鈕的寬高尺寸;direction
:展開(kāi)按鈕的方向,可以從左側(cè)、右側(cè)、上側(cè)或下側(cè)展開(kāi)操作按鈕;spaceBetweenChildren
:展開(kāi)按鈕之間的間距(默認(rèn)間距外可以額外增加的間距);visible
:是否可見(jiàn),如果滾動(dòng)時(shí)要隱藏 SpeedDial,那么可以在滾動(dòng)過(guò)程中設(shè)置visible
為false
;children
:SpeedDialChild
數(shù)組,用于包裹展開(kāi)后的按鈕。
SpeedDialChild
使用比較簡(jiǎn)單,通常是用圖標(biāo)作為其子組件,也支持添加文字標(biāo)簽說(shuō)明按鈕的功能,這里不再贅述。
我們來(lái)看 SpeedDial
的一個(gè)實(shí)際例子,在 Scaffold
的 floatingActionButton
使用 SpeedDial
替換 FloatingActionButton
,然后就是配置 SpeedDial
的參數(shù)和響應(yīng)方法了,SpeedDial
部分源碼如下,其中_speedDialDirection
用于控制展開(kāi)按鈕出現(xiàn)的方向,
floatingActionButton: SpeedDial( overlayColor: Colors.black, overlayOpacity: 0.5, icon: Icons.rocket, elevation: 4.0, buttonSize: const Size(44, 44), childrenButtonSize: Size(_childButtonSize, _childButtonSize), animationAngle: -pi / 4, // 圖標(biāo)的旋轉(zhuǎn)角度,和圖標(biāo)本身的朝向沒(méi)關(guān)系 activeIcon: Icons.rocket_launch, direction: _speedDialDirection, spaceBetweenChildren: 4.0, spacing: 4.0, children: [ SpeedDialChild( child: const Icon(Icons.add), backgroundColor: Colors.green, foregroundColor: Colors.white, onTap: () {}, ), SpeedDialChild( child: const Icon(Icons.settings), backgroundColor: Colors.orange[300], foregroundColor: Colors.white, onTap: () {}, ), SpeedDialChild( child: const Icon(Icons.person), backgroundColor: Colors.purple[300], foregroundColor: Colors.white, onTap: () {}, ), ], ),
運(yùn)行效果如下。
總結(jié)
可以看到,SpeedDial
的使用是非常簡(jiǎn)單的,而且提供了非常豐富的個(gè)性化配置參數(shù)。對(duì)于需要點(diǎn)擊懸浮按鈕展開(kāi)更多操作的場(chǎng)景來(lái)說(shuō),是一個(gè)可以直接拿來(lái)就用的組件。平時(shí),大家也可以多淘淘這樣的組件,到了用得上的時(shí)候就可以省時(shí)省力了。
到此這篇關(guān)于Flutter實(shí)現(xiàn)增強(qiáng)版的頁(yè)面懸浮按鈕的示例代碼的文章就介紹到這了,更多相關(guān)Flutter頁(yè)面懸浮按鈕內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android實(shí)現(xiàn)向本地寫入一個(gè)XML文件和解析XML文件
這篇文章主要介紹了Android實(shí)現(xiàn)向本地寫入一個(gè)XML文件和解析XML文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Android實(shí)現(xiàn)多媒體之播放音樂(lè)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)多媒體之播放音樂(lè)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Compose?動(dòng)畫藝術(shù)之屬性動(dòng)畫探索
這篇文章主要介紹了Compose動(dòng)畫藝術(shù)之屬性動(dòng)畫探索,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09Android 防止多次重復(fù)點(diǎn)擊的三種方法的示例
本篇文章主要介紹了Android 防止多次重復(fù)點(diǎn)擊的三種方法的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Flutter開(kāi)發(fā)之對(duì)角棋游戲?qū)崿F(xiàn)實(shí)例詳解
這篇文章主要為大家介紹了Flutter開(kāi)發(fā)之對(duì)角棋游戲?qū)崿F(xiàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11android中UIColletionView瀑布流布局實(shí)現(xiàn)思路以及封裝的實(shí)現(xiàn)
本篇文章主要介紹了android中UIColletionView瀑布流布局實(shí)現(xiàn)思路以及封裝的實(shí)現(xiàn),具有一定的參考價(jià)值,有興趣的可以了解一下。<BR>2017-02-02Android使用ViewFlipper和GestrueDetector共同實(shí)現(xiàn)滑屏效果實(shí)例
這篇文章主要介紹了Android使用ViewFlipper和GestrueDetector共同實(shí)現(xiàn)滑屏效果,結(jié)合完整實(shí)例形式分析了ViewFlipper和GestrueDetector控件實(shí)現(xiàn)滑屏功能的布局與相關(guān)操作技巧,需要的朋友可以參考下2017-02-02內(nèi)存泄露導(dǎo)致Android?中setVisibility()?失效原理
這篇文章主要介紹了內(nèi)存泄露導(dǎo)致Android?中setVisibility()?失效原理,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-07-07Android自定義StepView仿外賣配送進(jìn)度
這篇文章主要為大家詳細(xì)介紹了Android自定義StepView仿外賣配送進(jìn)度,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05android自定義Camera實(shí)現(xiàn)錄像和拍照
這篇文章主要為大家詳細(xì)介紹了android自定義Camera實(shí)現(xiàn)錄像和拍照功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05