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

更新於 發佈於 閱讀時間約 10 分鐘
raw-image
【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
留言分享你的想法!
avatar-img
HKT實驗室
23會員
261內容數
哈囉!歡迎光臨我的沙龍!我是 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
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
本篇文章將深入探討如何在 Flutter 中使用 Image 圖片元件。我們將涵蓋從資源管理到顯示本地資料夾中的圖片,以及如何載入網路圖片的完整過程。透過這篇文章,您將學會如何有效地管理圖片資源,並在應用程式中正確顯示圖片,提升您的 Flutter 開發技能。
Thumbnail
本篇文章將深入探討如何在 Flutter 中使用 Image 圖片元件。我們將涵蓋從資源管理到顯示本地資料夾中的圖片,以及如何載入網路圖片的完整過程。透過這篇文章,您將學會如何有效地管理圖片資源,並在應用程式中正確顯示圖片,提升您的 Flutter 開發技能。
Thumbnail
在本篇教學中,我們介紹了 Flutter 中的 Row 和 Column 佈局容器,並探討了它們的基本用法及進階技巧。此外,我們還提到如何使用快捷鍵來格式化程式碼,以提升可讀性。
Thumbnail
在本篇教學中,我們介紹了 Flutter 中的 Row 和 Column 佈局容器,並探討了它們的基本用法及進階技巧。此外,我們還提到如何使用快捷鍵來格式化程式碼,以提升可讀性。
Thumbnail
本文深入探討 Flutter 中的 Container 元件,這是一個多功能的包裝 Widget,能夠有效管理和裝飾其他 Widget。文章將詳細說明如何調整 Container 的大小、設置外部間距(margin)以及使用 BoxDecoration 來自訂樣式。
Thumbnail
本文深入探討 Flutter 中的 Container 元件,這是一個多功能的包裝 Widget,能夠有效管理和裝飾其他 Widget。文章將詳細說明如何調整 Container 的大小、設置外部間距(margin)以及使用 BoxDecoration 來自訂樣式。
Thumbnail
本文介紹了 Dart 中具有參數的函式。具有參數的函式允許靈活地處理不同輸入,增強程式碼的模組化和可重用性。透過範例說明,讀者能夠理解如何定義和使用這些函式,並掌握進階概念以提升程式設計能力。
Thumbnail
本文介紹了 Dart 中具有參數的函式。具有參數的函式允許靈活地處理不同輸入,增強程式碼的模組化和可重用性。透過範例說明,讀者能夠理解如何定義和使用這些函式,並掌握進階概念以提升程式設計能力。
Thumbnail
本篇文章介紹 GameWidget 是 Flutter 中用於嵌入遊戲實例的 widget,能作為應用程式的根部件或嵌入其他 widget 中。它自動擴展以填滿可用空間,並提供多種結構支援功能,如加載、錯誤處理和背景裝飾。
Thumbnail
本篇文章介紹 GameWidget 是 Flutter 中用於嵌入遊戲實例的 widget,能作為應用程式的根部件或嵌入其他 widget 中。它自動擴展以填滿可用空間,並提供多種結構支援功能,如加載、錯誤處理和背景裝飾。
Thumbnail
在這篇文章中,我們介紹了 Dart 中的字串資料類型,包括如何使用單引號和雙引號定義字串、如何建立多行字串,以及如何使用字串插入。字串資料型態在處理文字、顯示訊息或進行字串操作時非常實用,開發者可以根據需求靈活運用這些特性。
Thumbnail
在這篇文章中,我們介紹了 Dart 中的字串資料類型,包括如何使用單引號和雙引號定義字串、如何建立多行字串,以及如何使用字串插入。字串資料型態在處理文字、顯示訊息或進行字串操作時非常實用,開發者可以根據需求靈活運用這些特性。
Thumbnail
本文介紹了在 Dart 語言中使用單行和多行註解的方式及其作用。同時分享了在 Visual Studio Code 和 IntelliJ IDEA 中進行註解的快捷鍵。結論指出養成良好註解習慣對未來程式維護大有裨益,應及時為程式碼添加清晰註解。
Thumbnail
本文介紹了在 Dart 語言中使用單行和多行註解的方式及其作用。同時分享了在 Visual Studio Code 和 IntelliJ IDEA 中進行註解的快捷鍵。結論指出養成良好註解習慣對未來程式維護大有裨益,應及時為程式碼添加清晰註解。
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
程式註解在程式開發中扮演重要角色,像是附上便利貼般,幫助開發者快速理解程式碼功能。
Thumbnail
程式註解在程式開發中扮演重要角色,像是附上便利貼般,幫助開發者快速理解程式碼功能。
Thumbnail
如果你是剛入門Flutter的工程師,可以參考這篇文章,我會告訴大家自己常用的套件以及如何規劃檔案的分類!
Thumbnail
如果你是剛入門Flutter的工程師,可以參考這篇文章,我會告訴大家自己常用的套件以及如何規劃檔案的分類!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News