首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Flutter 基础组件 Text 详解

  • 25-04-24 05:00
  • 2722
  • 12828
blog.csdn.net

目录

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. 基本使用

  1. import 'package:flutter/material.dart';
  2. class ScTextPage extends StatefulWidget {
  3. const ScTextPage({super.key});
  4. @override
  5. State createState() => _ScTextPageState();
  6. }
  7. class _ScTextPageState extends State<ScTextPage> {
  8. @override
  9. Widget build(BuildContext context) {
  10. return Text('Hello, Flutter!');
  11. }
  12. }

解析:

  • Text('Hello, Flutter!') 创建了一个最简单的文本组件。
  • 默认使用 defaultTextStyle,字体大小、颜色取决于应用主题。

        虽然设置了主题,但是没有设置 Scaffold,依然丑,我们加一下Scaffold :

        加了  Scaffold 样式好看了很多,但是位置有点问题,咱们可以在下面调整一下

3. 自定义样式

    Text 组件可以通过 style 参数自定义字体样式。

  1. class _ScTextPageState extends State<ScTextPage> {
  2. @override
  3. Widget build(BuildContext context) {
  4. return Scaffold(
  5. body: Center(
  6. child: Text(
  7. 'Hello, Flutter!',
  8. style: TextStyle(
  9. fontSize: 24,
  10. fontWeight: FontWeight.bold,
  11. color: Colors.blue,
  12. fontStyle: FontStyle.italic,
  13. decoration: TextDecoration.underline,
  14. ),
  15. ),
  16. )
  17. );
  18. }
  19. }

常用样式参数:

  • fontSize:字体大小
  • fontWeight:字体粗细(FontWeight.bold、FontWeight.w300 等)
  • color:文本颜色
  • fontStyle:字体风格(FontStyle.normal、FontStyle.italic)
  • decoration:文本装饰(如下划线、删除线)

4. 文本对齐与溢出控制

当文本过长时,可以使用 overflow 参数控制显示方式。

  1. Text(
  2. 'Text 组件是 Flutter 中最常用的 UI 组件之一,用于显示文本内容。',
  3. maxLines: 1,
  4. overflow: TextOverflow.ellipsis,
  5. )

重要参数:

  • maxLines:限制最大行数
  • overflow:文本溢出处理方式(TextOverflow.ellipsis 显示省略号)

5. 外边距

        在 Flutter 中,Text 组件本身没有直接的 margin 属性,但可以通过以下 4 种方式设置外边距。

5.1 使用 Container 包裹

        这是最常用的解决方案,通过 Container 的 margin 属性控制外边距:

  1. class _ScTextPageState extends State<ScTextPage> {
  2. @override
  3. Widget build(BuildContext context) {
  4. return Scaffold(
  5. body: Center(
  6. child:Container(
  7. margin: EdgeInsets.all(20), // 四周外边距
  8. child: Text('带外边距的文本'),
  9. ),
  10. )
  11. )
  12. );
  13. }
  14. }

5.2 使用 Padding 组件

        如果只需要单边外边距,推荐使用 Padding 组件:

  1. Padding(
  2. // padding: EdgeInsets.all(40),//可以all
  3. padding: EdgeInsets.only(left: 20,right: 40,),//可以上下左右随意设置
  4. child: Text('左侧缩进20,右侧缩进40'),
  5. )

5.3 在 Row/Column 中使用

        当文本位于行列布局中时,可用 SizedBox 间隔:

  1. Row(
  2. children: [
  3. Text('左边文本'),
  4. SizedBox(width: 20), // 横向间距
  5. Text('右边文本')
  6. ],
  7. )

5.4 动态边距调整

        使用 MediaQuery 响应式布局:

  1. Container(
  2. margin: EdgeInsets.symmetric(
  3. horizontal: MediaQuery.of(context).size.width * 0.1
  4. ),
  5. child: Text('自适应边距文本'),
  6. )

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 的方法。 http://iyenn.com/rec/1821637.htmlFlutter:StatelessWidget vs StatefulWidget 深度解析-CSDN博客文章浏览阅读631次,点赞44次,收藏29次。在 Flutter 中,所有的 UI 组件都是由 Widget 组成,而 Widget 又分为两大类:StatelessWidget(无状态组件) 和 StatefulWidget(有状态组件)。StatelessWidget 适用于不会随时间变化的 UI,如文本、图标等静态内容;StatefulWidget 则适用于需要动态更新的 UI,如用户交互、动画、网络请求等。本文将深入解析这两种 Widget 的本质区别、适用场景以及生命周期,帮助开发者更好地理解 Flutter 组件的运行机制。 http://iyenn.com/rec/1821638.html

Flutter 基础组件 Scaffold 详解-CSDN博客文章浏览阅读403次,点赞15次,收藏16次。Scaffold 主要在 MaterialApp 主题下使用,它是实现Material Design基本视觉布局结构的Widget,它为应用提供了一个可定制的结构,包括 AppBar(应用栏)、Drawer(侧边栏)、FloatingActionButton(浮动按钮)、BottomNavigationBar(底部导航栏) 等。本文将详细解析 Scaffold 的功能和使用方法。 http://iyenn.com/rec/1821634.html 

注:本文转载自blog.csdn.net的帅次的文章"https://shuaici.blog.csdn.net/article/details/146067083"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top