Flutter 1.22版本新增的Button

Flutter 1.22版本新增了3個(gè)按鈕茄猫,TextButton狈蚤、OutlinedButton、ElevatedButton划纽,雖然以前的Button沒(méi)有被廢棄脆侮,但還是建議使用新的Button

為什么會(huì)新增 Button勇劣?因?yàn)橄胍獙⒁郧暗陌粹o調(diào)整為統(tǒng)一的外觀比較麻煩靖避,因此以前經(jīng)常使用自定義的按鈕,而新增的按鈕解決了此類(lèi)問(wèn)題比默,可以非常方便的設(shè)置整體外觀幻捏。

1.22版本前的按鈕 主題 1.22版本后的按鈕 主題
FlatButton ButtonTheme TextButton TextButtonTheme
OutlineButton ButtonTheme OutlinedButton OutlinedButtonTheme
RaisedButton ButtonTheme ElevatedButton ElevatedButtonTheme

樣式對(duì)比:

外觀上并沒(méi)有很大的不同,但TextButton命咐、OutlinedButton篡九、ElevatedButton 將外觀屬性集合為一個(gè) ButtonStyle,非常方便統(tǒng)一控制醋奠。

TextButton榛臼、OutlinedButton伊佃、ElevatedButton 這3個(gè)按鈕的用法和屬性完全相同,下面以 TextButton 為例讽坏。

簡(jiǎn)單使用:

TextButton(
  child: Text('TextButton'),
)

當(dāng) onPressed 不設(shè)置或者設(shè)置為 null 時(shí)锭魔,按鈕為不可用狀態(tài)。

TextButton(
  child: Text('TextButton'),
  onPressed: (){},
)

onPressed 為點(diǎn)擊回調(diào)路呜,onLongPress 為長(zhǎng)按回調(diào)迷捧。

下面是最重要的屬性 ButtonStyle,一切外觀都是通過(guò)這個(gè)屬性進(jìn)行控制胀葱,屬性如下:

const ButtonStyle({
  this.textStyle, //字體
  this.backgroundColor, //背景色
  this.foregroundColor, //前景色
  this.overlayColor, // 高亮色漠秋,按鈕處于focused, hovered, or pressed時(shí)的顏色
  this.shadowColor, // 陰影顏色
  this.elevation, // 陰影值
  this.padding, // padding
  this.minimumSize, //最小尺寸
  this.side, //邊框
  this.shape, //形狀
  this.mouseCursor, //鼠標(biāo)指針的光標(biāo)進(jìn)入或懸停在此按鈕的[InkWell]上時(shí)。
  this.visualDensity, // 按鈕布局的緊湊程度
  this.tapTargetSize, // 響應(yīng)觸摸的區(qū)域
  this.animationDuration, //[shape]和[elevation]的動(dòng)畫(huà)更改的持續(xù)時(shí)間抵屿。
  this.enableFeedback, // 檢測(cè)到的手勢(shì)是否應(yīng)提供聲音和/或觸覺(jué)反饋庆锦。例如,在Android上轧葛,點(diǎn)擊會(huì)產(chǎn)生咔噠聲搂抒,啟用反饋后,長(zhǎng)按會(huì)產(chǎn)生短暫的振動(dòng)尿扯。通常求晶,組件默認(rèn)值為true。
});

這些屬性的用法也和以前的不一樣衷笋,比如 textStyle 并不是直接設(shè)置 TextStyle芳杏,下面設(shè)置字體:

TextButton(
  child: Text('TextButton'),
  onPressed: () {},
  style: ButtonStyle(
    textStyle: MaterialStateProperty.all(TextStyle(fontSize: 20)),
  ),
)

注意:字體顏色的設(shè)置不通過(guò)textStyle 設(shè)置,而是通過(guò) foregroundColor

TextButton(
  child: Text('TextButton'),
  onPressed: () {},
  style: ButtonStyle(
    foregroundColor: MaterialStateProperty.all(Colors.red),
  ),
)

根據(jù)按鈕的狀態(tài)改變字體顏色:

TextButton(
                    child: Text('TextButton'),
                    onPressed: () {},
                    style: ButtonStyle(
                      foregroundColor:
                          MaterialStateProperty.resolveWith((states) {
                        return states.contains(MaterialState.pressed)
                            ? Colors.blue
                            : Colors.red;
                      }),
                    ),
                  )

其他屬性用法和上面類(lèi)似辟宗,不在一一介紹爵赵。

進(jìn)行全局控制:

MaterialApp(
  title: 'Flutter Demo',
  theme: ThemeData(
    textButtonTheme: TextButtonThemeData(
      style: ButtonStyle()
    ),
    elevatedButtonTheme: ElevatedButtonThemeData(
        style: ButtonStyle()
    ),
    outlinedButtonTheme: OutlinedButtonThemeData(
        style: ButtonStyle()
    )
  ),
  home: MyHomePage(title: 'Flutter Demo Home Page'),
)

ButtonStyle 內(nèi)的屬性配置和單個(gè)按鈕的用法是一致的。

通過(guò)上面的介紹泊脐,建議使用 TextButton空幻、OutlinedButton、ElevatedButton 替換 FlatButton晨抡、OutlineButton氛悬、RaisedButton

交流

老孟Flutter博客(330個(gè)控件用法+實(shí)戰(zhàn)入門(mén)系列文章):http://laomengit.com

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末耘柱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子棍现,更是在濱河造成了極大的恐慌调煎,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件己肮,死亡現(xiàn)場(chǎng)離奇詭異士袄,居然都是意外死亡悲关,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)娄柳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寓辱,“玉大人,你說(shuō)我怎么就攤上這事赤拒★ぃ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵挎挖,是天一觀的道長(zhǎng)这敬。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蕉朵,這世上最難降的妖魔是什么崔涂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮始衅,結(jié)果婚禮上冷蚂,老公的妹妹穿的比我還像新娘。我一直安慰自己汛闸,他們只是感情好蝙茶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蛉拙,像睡著了一般尸闸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上孕锄,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天吮廉,我揣著相機(jī)與錄音,去河邊找鬼畸肆。 笑死宦芦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的轴脐。 我是一名探鬼主播调卑,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼大咱!你這毒婦竟也來(lái)了恬涧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤碴巾,失蹤者是張志新(化名)和其女友劉穎溯捆,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體厦瓢,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡提揍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年啤月,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劳跃。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谎仲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刨仑,到底是詐尸還是另有隱情郑诺,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布贸人,位于F島的核電站间景,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏艺智。R本人自食惡果不足惜倘要,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望十拣。 院中可真熱鬧封拧,春花似錦、人聲如沸夭问。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)缰趋。三九已至捧杉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間秘血,已是汗流浹背味抖。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留灰粮,地道東北人仔涩。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像粘舟,于是被迫代替她去往敵國(guó)和親熔脂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355