【Flutter 學習筆記】Row、Column 佈局容器

更新 發佈閱讀 10 分鐘
vocus|新世代的創作平台
【Flutter 學習筆記】🎬 教學影片:連結
【Flutter 學習筆記】📚 文章目錄:連結

今天我們要來探討 Flutter 中的兩個重要佈局容器:Row 和 Column。這兩個 Widget 是構建 Flutter 應用界面的基石,能夠幫助我們有效地排列子元件。接下來,我們將逐步解析這些概念,並透過程式碼示範來加深理解。

1. 環境設置

在我們的 MaterialApp 框架中,body 參數傳入了 DemoPage 頁面元件。現在,讓我們切換到 DemoPage 頁面,並使用 stless 快捷鍵來快速生成 StatelessWidget 類別的程式碼。

class DemoPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return const Placeholder(); // 這裡稍後會替換成 Row 或 Column
}
}

2. Row 水平佈局容器

首先,我們來看看 Row 水平佈局容器。Row 可以讓子元件從左至右排列。在 build 方法中,我們將返回一個 Row Widget。

@override
Widget build(BuildContext context) {
return Row(
children: [
Container(
width: 100,
height: 100,
color: Colors.yellow,
),
Container(
width: 100,
height: 100,
color: Colors.green,
),
Container(
width: 100,
height: 100,
color: Colors.red,
),
],
);
}

2.1 Row 的結構解析

  • Row Widget:這是一個可以包含多個子元件的容器,透過 children 參數來指定。Container:每個子元件都是一個 Container,這裡我們設定了寬度、高度和背景顏色。你會看到三個顏色方塊水平排列。可以嘗試更改方塊的寬度、高度和顏色,觀察效果。

3. Column 垂直佈局容器

接下來,我們來看看 Column 垂直佈局容器。Column 可以讓子元件從上至下排列。現在,我們將把 Row Widget 改成 Column Widget。

@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
width: 100,
height: 100,
color: Colors.yellow,
),
Container(
width: 100,
height: 100,
color: Colors.green,
),
Container(
width: 100,
height: 100,
color: Colors.red,
),
],
);
}

3.1 Column 的結構解析

  • Column Widget:這是一個可以包含多個子元件的容器,透過 children 參數來指定,並且子元件會垂直排列。你會看到三個顏色方塊從水平排列變成垂直排列。

透過這個範例,應該能夠理解 Row 和 Column Widget 的差異。

4. 混合使用 Row 和 Column

值得注意的是,Row 和 Column 可以互相嵌套使用。例如,您可以在 Row 的子元件中放置 Column,或在 Column 的子元件中放置 Row。這樣的組合可以創造出更複雜的佈局。

@override
Widget build(BuildContext context) {
return Row(
children: [
Column(
children: [
Container(width: 50, height: 50, color: Colors.blue),
Container(width: 50, height: 50, color: Colors.orange),
],
),
Column(
children: [
Container(width: 50, height: 50, color: Colors.purple),
Container(width: 50, height: 50, color: Colors.cyan),
],
),
],
);
}

5. 佈局技巧

了解 Row 和 Column 的基本用法後,我們可以進一步探索一些佈局技巧,這些技巧能幫助我們創建更具吸引力和功能性的界面。

5.1 Padding 和 Margin

在設計界面時,適當的間距是非常重要的。Flutter 提供了 Padding 和 Margin 來控制元件之間的距離。

  • Padding:用於控制元件內部的間距。Margin:用於控制元件外部的間距。

以下是如何使用 Padding 和 Margin 的範例:

@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
width: 100,
height: 100,
color: Colors.yellow,
padding: EdgeInsets.all(10), // 內部間距
),
SizedBox(height: 20), // 用於增加元件之間的空間
Container(
width: 100,
height: 100,
color: Colors.green,
margin: EdgeInsets.only(top: 20), // 外部間距
),
],
);
}

5.2 使用 Spacer

在 Row 和 Column 中,您可以使用 Spacer Widget 來自動調整子元件之間的空間。這對於創建靈活的佈局非常有用。

@override
Widget build(BuildContext context) {
return Row(
children: [
Container(width: 50, height: 50, color: Colors.red),
Spacer(), // 自動填充空間
Container(width: 50, height: 50, color: Colors.blue),
],
);
}

5.3 Flex 和 Expanded

在 Row 和 Column 中,您可以使用 Expanded Widget 來讓子元件佔據可用的空間。這對於需要根據可用空間調整大小的元件特別有用。

dart複製代碼@override
Widget build(BuildContext context) {
return Row(
children: [
Expanded(
child: Container(color: Colors.red),
),
Expanded(
child: Container(color: Colors.green),
),
Expanded(
child: Container(color: Colors.blue),
),
],
);
}

6. 程式碼整理

在我們進行程式碼編寫的過程中,保持程式碼的整潔和可讀性是非常重要的。為了讓程式碼更易於維護和理解,我們可以使用格式化工具來整理程式碼。

6.1 程式碼格式化

在 Flutter 開發中,使用 Visual Studio code IDE 編輯器可以使用以下快捷鍵來快速整理程式碼:

  • Windows:按下 Shift + Alt + F
  • Mac:按下 Shift + Option + F

此外,您也可以使用滑鼠右鍵點擊編輯器,開啟選單後選擇「格式化文件」,這樣也能達到相同的效果。這樣的操作不僅能提升程式碼的可讀性,還能幫助您更快地找到錯誤和進行調整。

留言
avatar-img
HKT實驗室
31會員
278內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
HKT實驗室的其他內容
2024/11/28
在本文中,我們將介紹 TextField 文字輸入框元件及其基本用法。TextField 是一個關鍵的元件,使用者可以輕鬆地輸入文字,廣泛應用於各類應用程式中,如表單、搜尋框和聊天介面等。
Thumbnail
2024/11/28
在本文中,我們將介紹 TextField 文字輸入框元件及其基本用法。TextField 是一個關鍵的元件,使用者可以輕鬆地輸入文字,廣泛應用於各類應用程式中,如表單、搜尋框和聊天介面等。
Thumbnail
2024/11/28
本篇文章將深入探討如何在 Flutter 中使用 Image 圖片元件。我們將涵蓋從資源管理到顯示本地資料夾中的圖片,以及如何載入網路圖片的完整過程。透過這篇文章,您將學會如何有效地管理圖片資源,並在應用程式中正確顯示圖片,提升您的 Flutter 開發技能。
Thumbnail
2024/11/28
本篇文章將深入探討如何在 Flutter 中使用 Image 圖片元件。我們將涵蓋從資源管理到顯示本地資料夾中的圖片,以及如何載入網路圖片的完整過程。透過這篇文章,您將學會如何有效地管理圖片資源,並在應用程式中正確顯示圖片,提升您的 Flutter 開發技能。
Thumbnail
2024/11/26
這篇文章深入探討了 Flutter 框架中的 ElevatedButton(漂浮按鈕)元件。文章介紹了其基本用法,包括必填參數 onPressed 和 child 的解析,並示範了如何使用匿名函數來處理按鈕點擊事件。此外,還說明了如何設定按鈕的顏色和形狀,並提供了完整的範例程式碼。
Thumbnail
2024/11/26
這篇文章深入探討了 Flutter 框架中的 ElevatedButton(漂浮按鈕)元件。文章介紹了其基本用法,包括必填參數 onPressed 和 child 的解析,並示範了如何使用匿名函數來處理按鈕點擊事件。此外,還說明了如何設定按鈕的顏色和形狀,並提供了完整的範例程式碼。
Thumbnail
看更多
你可能也想看
Thumbnail
本篇文章介紹 GameWidget 是 Flutter 中用於嵌入遊戲實例的 widget,能作為應用程式的根部件或嵌入其他 widget 中。它自動擴展以填滿可用空間,並提供多種結構支援功能,如加載、錯誤處理和背景裝飾。
Thumbnail
本篇文章介紹 GameWidget 是 Flutter 中用於嵌入遊戲實例的 widget,能作為應用程式的根部件或嵌入其他 widget 中。它自動擴展以填滿可用空間,並提供多種結構支援功能,如加載、錯誤處理和背景裝飾。
Thumbnail
本文深入探討 Flutter 中的 Container 元件,這是一個多功能的包裝 Widget,能夠有效管理和裝飾其他 Widget。文章將詳細說明如何調整 Container 的大小、設置外部間距(margin)以及使用 BoxDecoration 來自訂樣式。
Thumbnail
本文深入探討 Flutter 中的 Container 元件,這是一個多功能的包裝 Widget,能夠有效管理和裝飾其他 Widget。文章將詳細說明如何調整 Container 的大小、設置外部間距(margin)以及使用 BoxDecoration 來自訂樣式。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
在這篇文章中,我們介紹了 Dart 中的字串資料類型,包括如何使用單引號和雙引號定義字串、如何建立多行字串,以及如何使用字串插入。字串資料型態在處理文字、顯示訊息或進行字串操作時非常實用,開發者可以根據需求靈活運用這些特性。
Thumbnail
在這篇文章中,我們介紹了 Dart 中的字串資料類型,包括如何使用單引號和雙引號定義字串、如何建立多行字串,以及如何使用字串插入。字串資料型態在處理文字、顯示訊息或進行字串操作時非常實用,開發者可以根據需求靈活運用這些特性。
Thumbnail
本文介紹了在 Dart 語言中使用單行和多行註解的方式及其作用。同時分享了在 Visual Studio Code 和 IntelliJ IDEA 中進行註解的快捷鍵。結論指出養成良好註解習慣對未來程式維護大有裨益,應及時為程式碼添加清晰註解。
Thumbnail
本文介紹了在 Dart 語言中使用單行和多行註解的方式及其作用。同時分享了在 Visual Studio Code 和 IntelliJ IDEA 中進行註解的快捷鍵。結論指出養成良好註解習慣對未來程式維護大有裨益,應及時為程式碼添加清晰註解。
Thumbnail
本篇文章將深入探討如何在 Flutter 中使用 Image 圖片元件。我們將涵蓋從資源管理到顯示本地資料夾中的圖片,以及如何載入網路圖片的完整過程。透過這篇文章,您將學會如何有效地管理圖片資源,並在應用程式中正確顯示圖片,提升您的 Flutter 開發技能。
Thumbnail
本篇文章將深入探討如何在 Flutter 中使用 Image 圖片元件。我們將涵蓋從資源管理到顯示本地資料夾中的圖片,以及如何載入網路圖片的完整過程。透過這篇文章,您將學會如何有效地管理圖片資源,並在應用程式中正確顯示圖片,提升您的 Flutter 開發技能。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
在本篇教學中,我們介紹了 Flutter 中的 Row 和 Column 佈局容器,並探討了它們的基本用法及進階技巧。此外,我們還提到如何使用快捷鍵來格式化程式碼,以提升可讀性。
Thumbnail
在本篇教學中,我們介紹了 Flutter 中的 Row 和 Column 佈局容器,並探討了它們的基本用法及進階技巧。此外,我們還提到如何使用快捷鍵來格式化程式碼,以提升可讀性。
Thumbnail
本文介紹了 Dart 中具有參數的函式。具有參數的函式允許靈活地處理不同輸入,增強程式碼的模組化和可重用性。透過範例說明,讀者能夠理解如何定義和使用這些函式,並掌握進階概念以提升程式設計能力。
Thumbnail
本文介紹了 Dart 中具有參數的函式。具有參數的函式允許靈活地處理不同輸入,增強程式碼的模組化和可重用性。透過範例說明,讀者能夠理解如何定義和使用這些函式,並掌握進階概念以提升程式設計能力。
Thumbnail
Container child:可以設定一個子元件 Container(child:Text('child')); color:背景顏色 Container(color: Color.fromARGB(255, 255, 255, 255)); alignment:對齊方式 Co
Thumbnail
Container child:可以設定一個子元件 Container(child:Text('child')); color:背景顏色 Container(color: Color.fromARGB(255, 255, 255, 255)); alignment:對齊方式 Co
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News