此控件比較簡單,按鈕的功能可劃分為UI樣式與事件回調(diào)
創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設(shè)|成都網(wǎng)站改版|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計與制作經(jīng)驗,為許多企業(yè)提供了網(wǎng)站定制設(shè)計服務(wù),案例作品覆蓋戶外休閑椅等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身開發(fā)品質(zhì)網(wǎng)站。
這里將幾種不同的按鈕一起運行,做下對比動圖如下:
這里對五種按鈕進行column居中排列如下
Text用于顯示簡單樣式文本,它包含一些控制文本顯示樣式的一些屬性。
TextStyle用于指定文本顯示的樣式如顏色、字體、粗細、背景等。
TextStyle更多屬性設(shè)置如下:
如果我們需要對一個Text內(nèi)容的不同部分按照不同的樣式顯示,即富文本,這時就可以使用TextSpan,它代表文本的一個“片段”。
如上述,我們當(dāng)然也可以在上述鏈接上添加手勢事件,后續(xù)會提到。
在widget樹中,文本的樣式默認(rèn)是可以被繼承的,因此,如果在widget樹的某一個節(jié)點處設(shè)置一個默認(rèn)的文本樣式,那么該節(jié)點的子樹中所有文本都會默認(rèn)使用這個樣式,而DefaultTextStyle正是用于設(shè)置默認(rèn)文本樣式的。
舉例如下:
在 Flutter 里有很多的 Button,包括了:MaterialButton、RaisedButton、FloatingActionButton、FlatButton、IconButton、ButtonBar、DropdownButton 等。
一般常用的 Button 是 MaterialButton、IconButton、FloatingActionButton。
MaterialButton 是一個 Materia 風(fēng)格的按鈕。
一般來說,如果需要點擊事件,就要嵌套一個 Button,因為 Container、Text 等組件都沒有點擊事件。
RaisedButton 與 MaterialButton 類似。
FlatButton 與 MaterialButton 類似,不同的是它是透明背景的。如果一個 Container 想要點擊事件時,可以使用 FlatButton 包裹,而不是 MaterialButton。因為 MaterialButton 默認(rèn)帶背景,而 FlatButton 默認(rèn)不帶背景。
IconButton 顧名思義就是 Icon + Button 的復(fù)合體,當(dāng)某個 Icon 需要點擊事件時,使用 IconButton 最好不過。
其外,還有已經(jīng)定義好的 Icon Button:CloseButton、BackButton。他們都有導(dǎo)航返回的能力。
FloatingActionButton 是一個浮動在頁面右下角的浮動按鈕。
在 Scaffold 里使用的時候,它是一個浮動狀態(tài)的按鈕,在其他地方使用,就不會浮動了。
ButtonBar 是一個布局組件,可以讓 Button 排列在一行。
Flutter中給我們預(yù)先定義好了一些按鈕控件給我們用,常用的按鈕如下
我們先來看看MaterialButton中的屬性,可以看到能設(shè)置的屬性還是很多的。
下面我們來看看常用屬性
而在Android中如果我們要修改按鈕樣式的話,需要通過selector和Shape等方式進行修改,相比較Flutter來說是要麻煩不少的
RaisedButton的構(gòu)造方法如下,由于繼承自MaterialButton,所以MaterialButton中的大多數(shù)屬性這邊都能用,且效果一致,這里就不在贅述了
下面我們來看一下屬性
接收一個方法,點擊按鈕時回調(diào)該方法。如果傳null,則表示按鈕禁用
如下圖所示
按鈕文本控件,一般都是傳一個Text Widget
按鈕顏色
按鈕的文本顏色
點擊按鈕時水波紋顏色
高亮顏色,點擊(長按)按鈕后的顏色
陰影范圍,一般不會設(shè)置太大
內(nèi)邊距,使用
或者
shape用來設(shè)置按鈕的形狀,其接收值是ShapeBorder類型,ShapeBorder是一個抽象類,我們來看看有哪些實現(xiàn)類
可以看到,實現(xiàn)類還是很多的,我們主要來看看常用的即可。
borderRadius 接收一個BorderRadius類型的值,常用方法如下
我們可以把borderRadius分為上下左右四個方向,下面的方法都是對這四個方向進行設(shè)置,
帶斜角的長方形邊框
圓形邊框
圓角矩形
兩端是半圓的邊框
FlatButton跟RaisedButton用法基本一致,下面我們就直接用一下
注意,OutlineButton是一個有默認(rèn)邊線且背景透明的按鈕,也就是說我們設(shè)置其邊線和顏色是無效的,其他屬性跟MaterialButton中屬性基本一致
下面我們直接來使用
效果如下:
IconButton是直接繼承自StatelessWidget的,默認(rèn)沒有背景
我們來看一下他的構(gòu)造方法
可以看到,icon是必填參數(shù)
icon接收一個Widget,但是一般我們都是傳入一個Icon Widget
其他屬性跟MaterialButton中的屬性用法基本一致
我們來用一下
效果如下:
我們也可以傳一個Text或其他Widget,這個大家自行嘗試吧
如果我們需要設(shè)置按鈕的最小寬度以及高度,button屬性中并沒有提供對應(yīng)的設(shè)置方法
使用如下:
Flutter中Button內(nèi)容大概就是這些