Flutter 基礎組件 Text 詳解

目錄

1. 引言

2. 基本使用

3. 自定義樣式

4. 文本對齊與溢出控制

5. 外邊距

5.1?使用 Container 包裹

5.2 使用 Padding 組件

5.3 在 Row/Column 中使用

5.4 動態邊距調整

5.5?關鍵區別說明

5.6?設置 margin 無效

6. 結論

相關推薦


1. 引言

? ? Text 組件是 Flutter 中最常用的 UI 組件之一,用于顯示文本內容。它支持樣式自定義、多行顯示、溢出控制等功能,適用于各種文本場景。本文將詳細介紹 Text 組件的使用方式及其重要參數。

2. 基本使用

import 'package:flutter/material.dart';class ScTextPage extends StatefulWidget {const ScTextPage({super.key});@overrideState<ScTextPage> createState() => _ScTextPageState();
}class _ScTextPageState extends State<ScTextPage> {@overrideWidget build(BuildContext context) {return Text('Hello, Flutter!');}
}

解析

  • Text('Hello, Flutter!') 創建了一個最簡單的文本組件。
  • 默認使用 defaultTextStyle,字體大小、顏色取決于應用主題。

????????雖然設置了主題,但是沒有設置 Scaffold,依然丑,我們加一下Scaffold :

? ? ? ? 加了??Scaffold 樣式好看了很多,但是位置有點問題,咱們可以在下面調整一下

3. 自定義樣式

? ? Text 組件可以通過 style 參數自定義字體樣式。

class _ScTextPageState extends State<ScTextPage> {@overrideWidget build(BuildContext context) {return Scaffold(body: Center(child: Text('Hello, Flutter!',style: TextStyle(fontSize: 24,fontWeight: FontWeight.bold,color: Colors.blue,fontStyle: FontStyle.italic,decoration: TextDecoration.underline,),),));}
}

常用樣式參數:

  • fontSize:字體大小
  • fontWeight:字體粗細(FontWeight.boldFontWeight.w300 等)
  • color:文本顏色
  • fontStyle:字體風格(FontStyle.normalFontStyle.italic
  • decoration:文本裝飾(如下劃線、刪除線)

4. 文本對齊與溢出控制

當文本過長時,可以使用 overflow 參數控制顯示方式。

Text('Text 組件是 Flutter 中最常用的 UI 組件之一,用于顯示文本內容。',maxLines: 1,overflow: TextOverflow.ellipsis,
)

重要參數:

  • maxLines:限制最大行數
  • overflow:文本溢出處理方式(TextOverflow.ellipsis 顯示省略號)

5. 外邊距

????????在 Flutter 中,Text?組件本身沒有直接的?margin?屬性,但可以通過以下 4 種方式設置外邊距。

5.1?使用 Container 包裹

????????這是最常用的解決方案,通過?Container?的?margin?屬性控制外邊距:

class _ScTextPageState extends State<ScTextPage> {@overrideWidget build(BuildContext context) {return Scaffold(body: Center(child:Container(margin: EdgeInsets.all(20), // 四周外邊距child: Text('帶外邊距的文本'),),)));}
}

5.2 使用 Padding 組件

????????如果只需要單邊外邊距,推薦使用?Padding?組件:

Padding(// padding: EdgeInsets.all(40),//可以allpadding: EdgeInsets.only(left: 20,right: 40,),//可以上下左右隨意設置child: Text('左側縮進20,右側縮進40'),
)

5.3 在 Row/Column 中使用

????????當文本位于行列布局中時,可用?SizedBox?間隔:

Row(children: [Text('左邊文本'),SizedBox(width: 20), // 橫向間距Text('右邊文本')],
)

5.4 動態邊距調整

????????使用?MediaQuery?響應式布局:

Container(margin: EdgeInsets.symmetric(horizontal: MediaQuery.of(context).size.width * 0.1),child: Text('自適應邊距文本'),
)

5.5?關鍵區別說明

屬性/組件作用范圍典型使用場景
margin組件外部空間控制與其他組件的間距
padding組件內部空間控制文本內容與容器的間距
SizedBox布局間隔在行列布局中精確控制元素間距

5.6?設置 margin 無效

  • 檢查父容器是否允許子組件擴展(如?ListView?需要設置?shrinkWrap: true

  • 確保外層沒有被?Center?或?Align?等布局組件限制?

6. 結論

? ? Text 組件是 Flutter 開發中不可或缺的一部分,它提供了豐富的自定義選項,適用于不同文本場景。掌握 Text 組件的各種參數和特性,可以幫助開發者構建更加美觀和靈活的 UI 界面。

相關推薦

Flutter Widget 體系結構解析-CSDN博客文章瀏覽閱讀710次,點贊23次,收藏15次。Flutter 是 Google 開發的一款跨平臺 UI 框架,它基于 Dart 語言,能夠在 iOS、Android、Web、桌面等多個平臺運行。Flutter 采用 聲明式 UI,并依賴其強大的 Widget 體系來構建界面。本文將深入解析 Flutter 的 Widget 體系結構,幫助開發者理解其運行原理,并掌握構建高效 UI 的方法。 https://shuaici.blog.csdn.net/article/details/146066531Flutter:StatelessWidget vs StatefulWidget 深度解析-CSDN博客文章瀏覽閱讀631次,點贊44次,收藏29次。在 Flutter 中,所有的 UI 組件都是由 Widget 組成,而 Widget 又分為兩大類:StatelessWidget(無狀態組件) 和 StatefulWidget(有狀態組件)。StatelessWidget 適用于不會隨時間變化的 UI,如文本、圖標等靜態內容;StatefulWidget 則適用于需要動態更新的 UI,如用戶交互、動畫、網絡請求等。本文將深入解析這兩種 Widget 的本質區別、適用場景以及生命周期,幫助開發者更好地理解 Flutter 組件的運行機制。 https://shuaici.blog.csdn.net/article/details/146066840

Flutter 基礎組件 Scaffold 詳解-CSDN博客文章瀏覽閱讀403次,點贊15次,收藏16次。Scaffold 主要在 MaterialApp 主題下使用,它是實現Material Design基本視覺布局結構的Widget,它為應用提供了一個可定制的結構,包括 AppBar(應用欄)、Drawer(側邊欄)、FloatingActionButton(浮動按鈕)、BottomNavigationBar(底部導航欄) 等。本文將詳細解析 Scaffold 的功能和使用方法。 https://shuaici.blog.csdn.net/article/details/146067470?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72084.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72084.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72084.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Acknowledgment.nack方法重試消費kafka消息異常

文章目錄 問題示例異常 原因nack方法Acknowledgment接口實現類&#xff1a;ConsumerAcknowledgment實現類&#xff1a;ConsumerBatchAcknowledgment 解決方案1 批量消費指定index示例 2 單條消費示例 問題 使用BatchAcknowledgingMessageListener 批量消費Kafka消息&#xff0…

Java 反序列化 - commons collection 之困(一)

#01多余的碎碎念 說到 java 反序列化&#xff0c;去搜索的話能看到網上有很多分析關于 commons collection 利用鏈的文章&#xff0c;emm 我一開始看不懂&#xff0c;看到很多代碼的圖頭暈。 這篇文章的話其實是我跟著 p 神的文章一路走下來的&#xff0c;所以整個邏輯會按照…

python LLM工具包

阿里云鏡像pypi http://mirrors.aliyun.com/pypi/simple/ modelscope魔塔 pip install modelscope https://modelscope.cn/docs/models/download Sentence-transformers pip install -U sentence-transformers pip3 install torch -i https://pypi.tuna.tsinghua.edu.cn/sim…

Linux賬號和權限管理

用戶賬戶管理 理論 /etc/passwd 該目錄用于保存用戶名&#xff0c;宿主目錄&#xff0c;登錄shel等基本信息 /etc/shadow 該目錄用于保存 用戶密碼&#xff0c;賬戶有效期等信息 圖上每一行中都有用“&#xff1a;”隔斷的字段 字段含義&#xff1a; 第1字段:用戶賬號的名…

晉升系列4:學習方法

每一個成功的人&#xff0c;都是從底層開始打怪&#xff0c;不斷的總結經驗&#xff0c;一步一步打上來的。在這個過程中需要堅持、總結方法論。 對一件事情長久堅持的人其實比較少&#xff0c;在堅持的人中&#xff0c;不斷的總結優化的更少&#xff0c;所以最終達到高級別的…

win32匯編環境,對話框中使用樹形視圖示例四

;運行效果,當點擊張遼時,展示張遼的圖像 ;當點擊曹仁時,展示曹仁的圖像 ;win32匯編環境,對話框中使用樹形視圖示例四 ;當點擊樹形視圖treeview控件中的某項時,展示某些功能。這里展示的是當點到某個將領時,顯示某個將領的圖像 ;直接抄進RadAsm可編譯運行。重要部分加備注。…

智慧停車小程序:實時車位查詢、導航與費用結算一體化

智慧停車小程序:實時車位查詢、導航與費用結算一體化 一、城市停車困境的數字化突圍 中國機動車保有量突破4.3億輛,但車位供給缺口達8000萬。傳統停車管理模式存在三大致命傷: 盲盒式尋位:62%的車主遭遇"地圖顯示有位,到場已滿員"的窘境迷宮式導航:商場停車場…

Windows server網絡安全

摘要 安全策略 IP安全策略&#xff0c;簡單的來說就是可以通過做相應的策略來達到放行、阻止相關的端口&#xff1b;放行、阻止相關的IP&#xff0c;如何做安全策略&#xff0c;小編為大家詳細的寫了相關的步驟&#xff1a; 解說步驟&#xff1a; 阻止所有&#xff1a; 打…

充電樁快速搭建springcloud(微服務)+前后端分離(vue),客戶端實現微信小程序+ios+app使用uniapp(一處編寫,處處編譯)

充電樁管理系統是專為中小型充電樁運營商、企業和個人開發者設計的一套高效、靈活的管理平臺。系統基于Spring Cloud微服務架構開發&#xff0c;采用模塊化設計&#xff0c;支持單機部署與集群部署&#xff0c;能夠根據業務需求動態擴展。系統前端使用uniapp框架&#xff0c;可…

小肥柴慢慢手寫數據結構(C篇)(4-3 關于棧和隊列的討論)

小肥柴慢慢學習數據結構筆記&#xff08;C篇&#xff09;&#xff08;4-3 關于棧和隊列的討論&#xff09; 目錄1 雙端棧/隊列2 棧與隊列的相互轉化2-1 棧轉化成隊列2-2 隊列轉化成棧 3 經典工程案例3-1 生產者和消費者模型&#xff08;再次重溫環形緩沖區&#xff09;3-2 MapR…

labview實現大小端交換移位

在解碼時遇到了大小端交換的問題&#xff0c;需要把高低字節的16進制值進行互換&#xff0c;這里一時間不知道怎么操作&#xff0c;本來打算先把16進制轉字節數組&#xff0c;算出字節數組的大小&#xff0c;然后通過模2得到0&#xff0c;1&#xff0c;來判斷是否為奇數位和偶數…

在Windows系統上安裝和配置Redis服務

&#x1f31f; 在Windows系統上安裝和配置Redis服務 Redis是一個高性能的鍵值存儲數據庫&#xff0c;廣泛用于緩存、消息隊列和實時分析等場景。雖然Redis最初是為Linux設計的&#xff0c;但也有Windows版本可供使用。今天&#xff0c;我將詳細介紹如何在Windows系統上安裝Red…

Ateme在云端構建可擴展視頻流播平臺

Akamai Connected Cloud幫助Ateme客戶向全球觀眾分發最高質量視頻內容。 “付費電視運營商和內容提供商現在可以在Akamai Connected Cloud上通過高質量視頻吸引觀眾&#xff0c;并輕松擴展。”── Ateme首席戰略官Rmi Beaudouin ? Ateme是全球領先的視頻壓縮和傳輸解決方案提…

DeepSeek進階應用(一):結合Mermaid繪圖(流程圖、時序圖、類圖、狀態圖、甘特圖、餅圖)

&#x1f31f;前言: 在軟件開發、項目管理和系統設計等領域&#xff0c;圖表是表達復雜信息的有效工具。隨著AI助手如DeepSeek的普及&#xff0c;我們現在可以更輕松地創建各種專業圖表。 名人說&#xff1a;博觀而約取&#xff0c;厚積而薄發。——蘇軾《稼說送張琥》 創作者&…

deepseek R1提供的3d迷宮設計方案

一、技術選型方案 核心渲染技術 &#x1f3a8; 采用Raycasting算法模擬3D透視效果使用Canvas 2D上下文進行逐像素繪制材質貼圖系統實現墻面差異化表現 迷宮數據結構 &#x1f5fa;? 二維數組存儲迷宮布局&#xff08;0:通路&#xff0c;1:墻體&#xff09;遞歸回溯算法生成隨…

時序數據庫TimescaleDB基本操作示例

好的&#xff01;以下是使用 TimescaleDB 的 Java 示例&#xff08;基于 JDBC&#xff0c;因為 TimescaleDB 是 PostgreSQL 的擴展&#xff0c;官方未提供獨立的 Java SDK&#xff09;&#xff1a; 1. 添加依賴&#xff08;Maven&#xff09; <dependency><groupId&g…

linux下的網絡抓包(tcpdump)介紹

linux下的網絡抓包[tcpdump]介紹 前言tcpdump1. 安裝 tcpdump2. 基本抓包命令3. 過濾器使用4. 保存捕獲的數據包 異常指標1. 連接建立與斷開相關指標異常 SYN 包異常 FIN 或 RST 包 2. 流量相關指標異常流量峰值異常源或目的 IP 流量 3. 端口相關指標異常端口使用端口掃描 4. 數…

C/C++中使用CopyFile、CopyFileEx原理、用法、區別及分別在哪些場景使用

文章目錄 1. CopyFile原理函數原型返回值用法示例適用場景 2. CopyFileEx原理函數原型返回值用法示例適用場景 3. 核心區別4. 選擇建議5. 常見問題6.區別 在Windows系統編程中&#xff0c;CopyFile和CopyFileEx是用于文件復制的兩個API函數。它們的核心區別在于功能擴展性和控制…

Bash和Zsh在處理大文件時差異

在處理大文件時&#xff0c;Bash 和 Zsh 的差異主要體現在幾個方面&#xff1a; 1. 腳本執行速度 Bash: 性能: Bash在執行腳本時通常表現良好&#xff0c;尤其是在處理大量數據或大文件時。Bash的腳本執行速度相對較快&#xff0c;適合大多數日常使用場景。優化: Bash在處理大…

不同AI生成的PHP版雪花算法

OpenAI <?php /*** Snowflake 雪花算法生成器* 生成的 64 位 ID 結構&#xff1a;* 1 位 保留位&#xff08;始終為0&#xff0c;防止負數&#xff09;* 41 位 時間戳&#xff08;毫秒級&#xff0c;當前時間減去自定義紀元&#xff09;* 5 位 數據中心ID* 5 …