【Flutter 學習筆記】ElevatedButton 按鈕元件

閱讀時間約 7 分鐘
raw-image
【Flutter 學習筆記】🎬 教學影片:連結
【Flutter 學習筆記】📚 文章目錄:連結

今天我們要來深入探討 Flutter 框架中的一個重要元件——ElevatedButton(漂浮按鈕)。在這篇文章中,我將逐步拆解這個元件的用法,讓大家能夠清楚理解每個部分的功能與用途。

什麼是 ElevatedButton?

在 Flutter 中,按鈕元件有多種型態,包括 TextButton(文字按鈕)、IconButton(圖示按鈕)等。而 ElevatedButton 是最常用的按鈕之一。它的特點是擁有陰影效果,讓按鈕看起來像是漂浮在畫面上,這也是它名稱中的「Elevated」所代表的意義。這種設計概念源自於 Material Design 的設計規範。

ElevatedButton 的基本用法

讓我們來看看如何在 Flutter 中使用 ElevatedButton。首先,我們在 build 方法中加入一個 Center Widget,然後在 child 參數中新增一個 ElevatedButton 元件。

@override
Widget build(BuildContext context) {
return Center(
child: ElevatedButton(
onPressed: () {
print('我被點擊了!');
},
child: Text('按鈕'),
),
);
}

參數解析

在 ElevatedButton 的小括號內,我們可以看到兩個必填參數:

  1. onPressed:這是一個函數,當按鈕被點擊時會執行的程式碼。child:這是按鈕內部顯示的內容,通常是一個 Text Widget。

這兩個參數都是具名參數,並且使用了 required 修飾詞,表示這兩個參數是必須填寫的。

使用匿名函數

在 onPressed 參數中,我們傳入了一個匿名函數。這個函數沒有參數,也沒有回傳值,因此我們使用小括號和大括號來定義它。在大括號內,我們可以寫下按鈕被點擊後要執行的程式碼。在這裡,我們只是簡單地使用 print 函數來輸出一條訊息。

如果需要更新畫面,就需要使用 StatefulWidget 並呼叫 setState 方法來更新畫面。

儲存與 Hot Reload

當我們完成程式碼後,使用快捷鍵存檔,這時候 Flutter 的 Hot Reload 功能會自動啟用。你會看到畫面正中央出現一個按鈕,點擊它後,輸出資訊區會顯示「我被點擊了!」。

如果在下方的偵錯控制台沒有看到輸出,可以點擊右上角開啟下方資訊視窗,再次點擊按鈕就能看到輸出結果。VS Code 會幫我們計數,避免資訊量過多。

設定按鈕的顏色樣式

接下來,我們來看看如何設定按鈕的顏色樣式。注意,參數之間要用逗號隔開。

ElevatedButton(
onPressed: () {
print('我被點擊了!');
},
style: ElevatedButton.styleFrom(
backgroundColor: Colors.blue, // 設定背景顏色
foregroundColor: Colors.white, // 設定文字顏色
),
child: Text('按鈕'),
)

在 style 參數中,我們使用 ElevatedButton.styleFrom() 方法來設定按鈕的樣式。這裡我們設定了 backgroundColor 為藍色,foregroundColor 為白色。再次存檔後,按鈕的顏色樣式就會改變。

設定按鈕的形狀

除了顏色,我們還可以設定按鈕的形狀。在 ElevatedButton.styleFrom() 方法中,有一個 shape 參數可以用來設定按鈕的外框形狀。

style: ElevatedButton.styleFrom(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0), // 設定圓角半徑
),
)

在這裡,我們使用 RoundedRectangleBorder 方法來設定按鈕的外框形狀,並在 borderRadius 參數中傳入 BorderRadius.circular(8.0),這表示按鈕的圓角半徑為 8.0。這樣的設計可以讓按鈕看起來更加柔和,符合現代 UI 設計的趨勢。

完整的 ElevatedButton 範例

以下是整個 ElevatedButton 的完整範例,包含顏色和形狀的設定:

@override
Widget build(BuildContext context) {
return Center(
child: ElevatedButton(
onPressed: () {
print('我被點擊了!');
},
style: ElevatedButton.styleFrom(
backgroundColor: Colors.blue, // 設定背景顏色
foregroundColor: Colors.white, // 設定文字顏色
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0), // 設定圓角半徑
),
),
child: Text('按鈕'),
),
);
}

小結

今天我們深入探討了 Flutter 中的 ElevatedButton 漂浮按鈕元件,學習了如何使用它的基本功能,包括設定按鈕的顏色、文字、形狀等屬性。希望這些資訊對大家在開發 Flutter 應用程式時有所幫助。

如果這篇文章對你有幫助,別忘了幫我按個讚、分享和訂閱,這是對我最大的支持!我們下次課程再見,掰掰!

avatar-img
10會員
235內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
HKT實驗室 的其他內容
在本篇教學中,我們介紹了 Flutter 中的 Row 和 Column 佈局容器,並探討了它們的基本用法及進階技巧。此外,我們還提到如何使用快捷鍵來格式化程式碼,以提升可讀性。
本文深入探討 Flutter 中的 Container 元件,這是一個多功能的包裝 Widget,能夠有效管理和裝飾其他 Widget。文章將詳細說明如何調整 Container 的大小、設置外部間距(margin)以及使用 BoxDecoration 來自訂樣式。
在這篇文章中,介紹 Flutter 中的 StatefulWidget,並透過一個簡單的計數器應用程式來說明其結構與運作方式。文章涵蓋了應用程式的主要組件,包括 main 函數、MyApp 類別、MyHomePage 類別及其對應的狀態類別 _MyHomePageState。
本篇文章探討 Flutter 中的 Text 文字元件及其內部屬性。學習如何查看 Text 元件的原始碼,補充介紹位置參數與具名參數。
在這篇文章中,我們深入探討 Flutter 中的 Text 元件,這是一個用於顯示文字的基本組件。無論是純文字顯示、字體樣式的設定,還是多行顯示,Text 元件都能輕鬆應對。
本課程介紹了如何建立第一個 Flutter 應用程式。學習內容包括匯入 Flutter 套件、定義主函數、建立無狀態的 Widget 類別 MainApp,以及使用 Scaffold 和 Center 來組織 UI 元件。最終,學員能夠編譯並執行一個顯示「HKT 線上教室」的簡單應用程式。
在本篇教學中,我們介紹了 Flutter 中的 Row 和 Column 佈局容器,並探討了它們的基本用法及進階技巧。此外,我們還提到如何使用快捷鍵來格式化程式碼,以提升可讀性。
本文深入探討 Flutter 中的 Container 元件,這是一個多功能的包裝 Widget,能夠有效管理和裝飾其他 Widget。文章將詳細說明如何調整 Container 的大小、設置外部間距(margin)以及使用 BoxDecoration 來自訂樣式。
在這篇文章中,介紹 Flutter 中的 StatefulWidget,並透過一個簡單的計數器應用程式來說明其結構與運作方式。文章涵蓋了應用程式的主要組件,包括 main 函數、MyApp 類別、MyHomePage 類別及其對應的狀態類別 _MyHomePageState。
本篇文章探討 Flutter 中的 Text 文字元件及其內部屬性。學習如何查看 Text 元件的原始碼,補充介紹位置參數與具名參數。
在這篇文章中,我們深入探討 Flutter 中的 Text 元件,這是一個用於顯示文字的基本組件。無論是純文字顯示、字體樣式的設定,還是多行顯示,Text 元件都能輕鬆應對。
本課程介紹了如何建立第一個 Flutter 應用程式。學習內容包括匯入 Flutter 套件、定義主函數、建立無狀態的 Widget 類別 MainApp,以及使用 Scaffold 和 Center 來組織 UI 元件。最終,學員能夠編譯並執行一個顯示「HKT 線上教室」的簡單應用程式。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
浮動(float)是早期用來創建佈局的技術。元素可以向左或向右浮動,旁邊的元素會環繞浮動元素。浮動元素通常用於圖文混排或簡單的兩欄佈局。
在上篇瞭解完Actions & Blinks的整個工作流程後,我們就來學習如何用程式碼構建屬於自己的Actions & Blinks吧!本篇詳細講解了要自製Actions & Blinks的所有步驟並提供範例程式碼給大家參考,相信能讓大家快速入門!
Thumbnail
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
本文介紹瞭如何在SwiftUI中調整元件的對齊方式,包括置中、向左/向右/向上/向下對齊的方法。透過調整HStack、VStack以及frame的maxWidth、maxHeight和alignment屬性,可以達到想要的對齊效果。
Thumbnail
本文總結和介紹了Kotlin的基本語法、註解和變數的使用,透過實例進行講解,以幫助讀者更好地理解和快速上手Kotlin語言。
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
setter和getter能把狀態改變時需做的事情包裝起來,讓外部只需簡單修改參數就能達到預想的效果
Thumbnail
有沒有想過,即使沒有任何編程背景,你的創意也能在六個月內轉化成真實的App?我可以以自身經歷跟你說有了 No-Code Tool (無代碼工具) 和 AI 的幫助,這一切都是可能的!你一行 code 都不需要打,甚至也無須學習任何編程語言!沒有什麼比實踐一個自小認為不可能的任務還振奮人心的事了!
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
浮動(float)是早期用來創建佈局的技術。元素可以向左或向右浮動,旁邊的元素會環繞浮動元素。浮動元素通常用於圖文混排或簡單的兩欄佈局。
在上篇瞭解完Actions & Blinks的整個工作流程後,我們就來學習如何用程式碼構建屬於自己的Actions & Blinks吧!本篇詳細講解了要自製Actions & Blinks的所有步驟並提供範例程式碼給大家參考,相信能讓大家快速入門!
Thumbnail
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
本文介紹瞭如何在SwiftUI中調整元件的對齊方式,包括置中、向左/向右/向上/向下對齊的方法。透過調整HStack、VStack以及frame的maxWidth、maxHeight和alignment屬性,可以達到想要的對齊效果。
Thumbnail
本文總結和介紹了Kotlin的基本語法、註解和變數的使用,透過實例進行講解,以幫助讀者更好地理解和快速上手Kotlin語言。
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
setter和getter能把狀態改變時需做的事情包裝起來,讓外部只需簡單修改參數就能達到預想的效果
Thumbnail
有沒有想過,即使沒有任何編程背景,你的創意也能在六個月內轉化成真實的App?我可以以自身經歷跟你說有了 No-Code Tool (無代碼工具) 和 AI 的幫助,這一切都是可能的!你一行 code 都不需要打,甚至也無須學習任何編程語言!沒有什麼比實踐一個自小認為不可能的任務還振奮人心的事了!