Flutter 基础组件 Text 详解

news2025/3/12 15:01:57

目录

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});

  @override
  State<ScTextPage> createState() => _ScTextPageState();
}

class _ScTextPageState extends State<ScTextPage> {
  @override
  Widget build(BuildContext context) {
    return Text('Hello, Flutter!');
  }
}

解析

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

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

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

3. 自定义样式

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

class _ScTextPageState extends State<ScTextPage> {
  @override
  Widget 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> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child:Container(
          margin: EdgeInsets.all(20), // 四周外边距
          child: Text('带外边距的文本'),
          ),
        )
      )
    );
  }
}

5.2 使用 Padding 组件

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

Padding(
    // padding: EdgeInsets.all(40),//可以all
    padding: 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.coloradmin.cn/o/2313807.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Torch 模型 model => .onnx => .trt 及利用 TensorTR 在 C++ 下的模型部署教程

一、模型训练环境搭建和模型训练 模型训练环境搭建主要牵扯 Nvidia driver、Cuda、Cudnn、Anaconda、Torch 的安装&#xff0c;相关安装教程可以参考【StarCoder 微调《个人编程助手: 训练你自己的编码助手》】中 5.1 之前的章节。 模型训练的相关知识可以参考 Torch的编程方…

爱普生可编程晶振SG-8200CJ特性与应用

在高速发展的电子技术领域&#xff0c;时钟源作为电子系统的“心脏”&#xff0c;其性能直接影响设备的稳定性与可靠性。爱普生SG-8200CJ可编程晶振凭借其优秀的频率精度、低抖动性能及广泛的环境适应性&#xff0c;正成为众多领域的得力之选&#xff0c;为各类设备的高效运行与…

ubuntu中用docker下载opengauss

1.安装docker sudo apt install docker.io2.拉取opengauss镜像 sudo docker pull enmotech/opengauss3.创建容器 sudo docker run --name opengauss --privilegedtrue -d -e GS_PASSWORDEnmo123 enmotech/opengauss:latest3.5.如果容器停止运行&#xff08;比如关机了&#…

tslib

使用tslib来读取触摸屏的数据&#xff0c;可以得到原始数据&#xff0c;也可以在原始数据的基础上进行一些处理。比如有些触摸屏比较不稳定&#xff0c;跳动比较大&#xff0c;我们可以将跳动比较大的数据给删除掉 plugins里面的每个文件都会被编译成一个动态库&#xff0c;这些…

MoonSharp 文档三

MoonSharp 文档一-CSDN博客 MoonSharp 文档二-CSDN博客 MoonSharp 文档四-CSDN博客 MoonSharp 文档五-CSDN博客 7.Proxy objects&#xff08;代理对象&#xff09; 如何封装你的实现&#xff0c;同时又为脚本提供一个有意义的对象模型 官方文档&#xff1a;MoonSharp 在实际…

linux和windows之间的复制

第一步 sudo apt-get autoremove open-vm-tools第二步 sudo apt-get update第三步 sudo apt-get install open-vm-tools-desktop按y 第四步 重启虚拟机&#xff0c;终端下输入 rebootLinux下 按“ CtrlShiftC V ”复制粘贴 Windows下按“ Ctrl C V ”复制粘贴

在资源有限中逆势突围:从抗战智谋到寒门高考的破局智慧

目录 引言 一、历史中的非对称作战&#xff1a;从李牧到八路军的智谋传承 李牧戍边&#xff1a;古代军事博弈中的资源重构 八路军的游击战&#xff1a;现代战争中的智慧延续 二、创业界的逆袭之道&#xff1a;小米与拼多多的资源重构 从MVP到杠杆解 社交裂变与资源错配 …

javascript-es6 (六)

编程思想 面向过程 面向过程就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候再一个一个的依次 调用就可以了 就是按照我们分析好了的步骤&#xff0c;按照步骤解决问题 面向对象 面向对象是把事务分解成为一个个对象&…

Spring AI 1.0.0 M6新特性MCP

Spring AI 1.0.0 M6新特性MCP 前言一、MCP是什么&#xff1f;&#xff08;Model Context Protocol&#xff09;二、它的发展历程三、核心架构四、MCP Java SDK的核心能力Java MCP实现遵循三层架构&#xff1a;MCP客户端MCP服务器总结MCP 的核心能力总结多种传输选项 搭建服务端…

【性能测试入门_01性能测试jmeter基础实操场景详解】

一、应用项目如何部署在服务器上 可以将项目进行打jar包 双击install&#xff0c;控制台就会打印打包的过程 最终打的包&#xff0c;会存放在打印的那个路径下 这个jar包&#xff0c;就是开发人员开发好&#xff0c;直接可以部署的 可以通过命令&#xff0c;在终端直接启动这…

跨越时空的对话:图灵与GPT-4聊AI的前世今生

&#xff08;背景&#xff1a;虚拟咖啡厅&#xff0c;图灵身着1950年代西装&#xff0c;端着一杯热茶&#xff0c;GPT-4以全息投影形态坐在对面&#xff09; 图灵&#xff08;喝了口茶&#xff09;&#xff1a;“听说你能写诗&#xff1f;我当年在布莱切利园破解Enigma时&…

如何通过 Seatunnel 实现 MySQL 到 OceanBase的数据迁移同步

1. 准备传输工具 本方案采用 Apache Seatunnel&#xff08;简称seatunnel&#xff09;进行MySQL 到 OceanBase 的数据迁移和同步&#xff0c;出于对方案轻量性的考量&#xff0c;我们采用其内置的Zeta引擎来实现&#xff0c;包括全量同步、离线增量同步&#xff0c;以及CDC方案…

软件设计模式之简单工厂模式

目录 一.类图&#xff08;手机生产&#xff09; 二.代码实现 Iphone类&#xff1a; Vivo类&#xff1a; Mobile类&#xff1a; MobileFactory类&#xff1a; Client类&#xff1a; 一.类图&#xff08;手机生产&#xff09; 补充&#xff1a;MobileFactory也可以直接指向…

LiveGBS流媒体平台GB/T28181常见问题-视频流安全控制HTTP接口鉴权勾选流地址鉴权后401Unauthorized如何播放调用接口流地址校验

LiveGBS流媒体平台GB/T28181常见问题频流安全控制HTTP接口鉴权勾选流地址鉴权后401Unauthorized如何播放调用接口流地址校验&#xff1f; 1、安全控制1.1、HTTP接口鉴权1.2、流地址鉴权 2、401 Unauthorized2.1、携带token调用接口2.1.1、获取鉴权token2.1.2、调用其它接口2.1.…

Java 大视界 -- 区块链赋能 Java 大数据:数据可信与价值流转(84)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

接口自动化入门 —— Http的请求头,请求体,响应码解析!

在接口自动化测试中&#xff0c;HTTP请求头、请求体和响应码是核心组成部分。理解它们的作用、格式和解析方法对于进行有效的接口测试至关重要。以下是详细解析&#xff1a; 1. HTTP 请求头&#xff08;Request Header&#xff09; 1.1 作用 请求头是客户端向服务器发送的附加…

upload-labs(1-20)详解(专业版)

目录 第1关 第2关 第3关 第4题 第5题 第6题 第7题 第8题 第9题 第10题 第11题 第12题 第13题 第1关 查看源码 在第一关是一个前端js的一个后缀识别&#xff1a;当不为jpg、png、gif时候出现弹窗 检查源码 将return checkFile() 改为 return ture 就可以将php顺利…

Linux 生成静态库

文章目录 前提小知识生成和使用.a库操作步骤 在应用程序中&#xff0c;有一些公共的代码需要反复使用的&#xff0c;可以把这些代码制作成“库文件”&#xff1b;在链接的步骤中&#xff0c;可以让链接器在“库文件”提取到我们需要使用到的代码&#xff0c;复制到生成的可执行…

ARMV8的64位指令

一、介绍 ARMv8 体系结构最大的改变是增加了一个新的 64 位的指令集&#xff0c;这是早前 ARM 指令集 的有益补充和增强。它可以处理 64 位宽的寄存器和数据并且使用 64 位的指针来访问内存。这 个新的指令集称为 A64 指令集&#xff0c;运行在 AArch64 状态。 ARMv8 兼容旧的…

PawSQL for TDSQL:腾讯云TDSQL数据库性能优化全攻略

TDSQL 作为腾讯云推出的分布式数据库&#xff0c;凭借其高扩展性、高可用性和高性能等优势&#xff0c;广泛应用于金融、互联网、政务等领域。随着业务的不断增长和数据量的爆炸式增长&#xff0c;如何优化 TDSQL 数据库的性能&#xff0c;成为众多企业和开发者面临的挑战。本文…