Flutter 零基础入门(二十二):Text 文本组件与样式系统

Flutter 零基础入门(二十二):Text 文本组件与样式系统

在上一篇中,我们学习了:

  • Container 的使用
  • padding / margin
  • BoxDecoration(圆角、阴影、边框)

页面已经开始"好看"了。

而这一篇,我们要解决 UI 中出现频率最高的问题:

文字怎么显示?怎么变好看?


一、Text 是什么?

在 Flutter 中:

Text 用来显示一段文本内容

几乎所有页面都会使用 Text。


二、最简单的 Text

dart 复制代码
Text('Hello Flutter')

这是一段:

  • 默认字号
  • 默认颜色
  • 单行文本

三、Text 的常用属性(核心)

1️⃣ style:文字样式

复制代码
Text(
  'Hello Flutter',
  style: TextStyle(
    fontSize: 18,
    color: Colors.blue,
  ),
)

2️⃣ fontSize:字号

复制代码
fontSize: 16

一般建议:

  • 正文:14 ~ 16
  • 标题:18 ~ 24

3️⃣ color:文字颜色

复制代码
color: Colors.red

4️⃣ fontWeight:粗细

复制代码
fontWeight: FontWeight.bold

常见值:

  • w400(正常)
  • w500 / w600(偏粗)
  • bold

四、TextStyle 的独立使用(推荐)

❌ 不推荐

复制代码
Text(
  '标题',
  style: TextStyle(fontSize: 18),
)

✅ 推荐

复制代码
final titleStyle = TextStyle(
  fontSize: 18,
  fontWeight: FontWeight.bold,
);

Text('标题', style: titleStyle);

📌 样式复用是专业 Flutter 项目的标志


五、行数限制与溢出(重点)

1️⃣ maxLines

复制代码
Text(
  '这是一段很长很长的文本',
  maxLines: 2,
)

2️⃣ overflow

复制代码
Text(
  '这是一段很长很长的文本',
  maxLines: 1,
  overflow: TextOverflow.ellipsis,
)

效果:

复制代码
这是一段很长的...

3️⃣ 常见溢出方式

  • clip(裁剪)
  • fade(渐隐)
  • ellipsis(省略号,最常用)

六、textAlign:文本对齐

复制代码
Text(
  'Hello Flutter',
  textAlign: TextAlign.center,
)

常见值:

  • left
  • center
  • right

七、Text 与 Row / Column 的组合

常见错误 ❌

复制代码
Row(
  children: [
    Text('很长很长很长的文本'),
    Icon(Icons.arrow_forward),
  ],
)

可能导致溢出。


正确写法 ✅

复制代码
Row(
  children: [
    Expanded(
      child: Text(
        '很长很长很长的文本',
        overflow: TextOverflow.ellipsis,
      ),
    ),
    Icon(Icons.arrow_forward),
  ],
)

八、富文本(简单了解)

复制代码
Text.rich(
  TextSpan(
    children: [
      TextSpan(text: '价格:'),
      TextSpan(
        text: '¥99',
        style: TextStyle(color: Colors.red),
      ),
    ],
  ),
)

用于:

  • 强调局部文字
  • 价格、关键词高亮

九、实战:一个标准列表项文字结构

复制代码
Column(
  crossAxisAlignment: CrossAxisAlignment.start,
  children: [
    Text(
      '这是标题',
      style: TextStyle(
        fontSize: 16,
        fontWeight: FontWeight.bold,
      ),
    ),
    SizedBox(height: 4),
    Text(
      '这是描述内容,最多显示两行,超出显示省略号。',
      maxLines: 2,
      overflow: TextOverflow.ellipsis,
      style: TextStyle(
        fontSize: 14,
        color: Colors.grey,
      ),
    ),
  ],
)

十、新手常见误区

❌ 不限制 maxLines

❌ Row 中直接放长文本

❌ 样式到处复制

❌ 字号、颜色随意写

📌 建议:

统一 TextStyle,比写 100 行布局都重要


十一、这一篇你真正学会了什么?

你已经掌握了:

  • Text 的常用属性
  • TextStyle 的使用与复用
  • 文本溢出的处理方式
  • Flutter 中专业文本写法

你现在写的文字:

已经像"正式 App"而不是 Demo 了


十二、总结

本篇你学会了:

  • Text 的基本与进阶用法
  • 文本样式系统
  • 实战级文字布局技巧

🔜 下一篇预告

《Flutter 零基础入门(二十三):Icon、Image 与资源管理》

下一篇我们将学习:

  • Icon 的使用
  • Image 加载本地与网络图片
  • pubspec.yaml 中的资源配置
  • 常见图片加载坑点

从下一篇开始:

你的 App 将"真正有图有内容" 🖼️

相关推荐
麦麦麦当劳大王3 小时前
【油猴脚本】Boss直聘 岗位职责复制
开发语言·前端·javascript
starzy19903 小时前
深入理解Scala Map:从实现原理到工程实践
开发语言·后端·scala
小lu飞3 小时前
2026小红书小工具怎么制作:纯前端 ZIP 打包、沙箱限制与笔记挂载流程
前端·笔记·ai·ai编程
只睡四小时4 小时前
Three.js Sub-tick:漏判 60.7%→0
开发语言·javascript·性能优化·ecmascript·游戏开发·three.js·碰撞检测
smallcelebration4 小时前
151 从0开始搭建后端项目
前端·firefox
wangruofeng4 小时前
手机和电脑传文件,除了微信还有 LocalSend
前端
码农小河664 小时前
基于SSM+JSP的高校专业信息管理系统【附源码+数据库】
java·开发语言·数据库
excel4 小时前
基于 GPT 的自动发布文章接口方案:从一句话或一张图片生成并发布内容
前端·javascript·后端
东鹏特饮6 小时前
系统运维(传统/通用运维)面试题
开发语言·php
其实防守也摸鱼6 小时前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全