Flutter 文本2025年3月17日 | 阅读 7 分钟 在 Flutter 中,Text 是一个用于**在我们的应用程序中以单行显示文本字符串**的 Widget。根据布局约束,我们可以将字符串分成多行,或者可能全部显示在同一行。如果我们没有为 Text Widget 指定任何样式,它将使用最接近的**DefaultTextStyle**类样式。这个类没有任何显式样式。在本文中,我们将学习如何使用 Text Widget 以及如何在我们的应用程序中设置其样式。 这是一个简单的例子来理解这个 Widget。此示例在应用程序栏中显示我们**项目的标题**,并在应用程序的主体中显示一条**消息**。 在上面的代码中,我们使用了**MaterialApp** Widget,它使用**MyTextPage()**类调用主屏幕。该类包含**scaffold** Widget,它具有**appBar**和**body**,我们在其中使用**Text** Widget 分别显示标题和正文。这是一个 Text Widget 的简单场景,我们必须传递想要在页面上显示的字符串。 当我们在模拟器或设备上运行此应用程序时,我们应该得到类似于以下屏幕截图的 UI ![]() Text Widget 构造函数text Widget 构造函数用于自定义我们的文本在 Flutter 中的外观 以下是在我们的应用程序中使用的 Text Widget 的基本属性 **TextAlign:**它用于指定我们的文本水平对齐方式。它还控制文本位置。 **TextDirection:**它用于确定 textAlign 值如何控制我们文本的布局。通常,我们从左向右书写文本,但我们可以使用此参数更改它。 **Overflow:**它用于确定当文本不适合可用空间时。这意味着我们指定了比可用空间更多的文本。 **TextScaleFactor:**它用于确定 Text Widget 显示的文本的缩放。假设我们已将文本缩放因子指定为 1.5,那么我们的文本将比指定的字体大小大 50%。 **SoftWrap:**它用于确定在没有足够空间时是否显示所有文本 Widget 内容。如果为真,它将显示所有内容。否则,它不会显示所有内容。 **MaxLines:**它用于确定文本 Widget 中显示的最大行数。 **TextWidthBasis:**它用于控制如何定义文本宽度。 **TextHeightBehavior:**它用于控制段落在第一行和最后一行下降之间如何显示。 **Style:**它是此 Widget 最常见的属性,它允许开发人员设置文本样式。它可以通过指定前景和背景颜色、字体大小、字体粗细、字母和单词间距、区域设置、阴影等来设置样式。查看表格更容易理解
输出 当我们在模拟器或设备上运行此应用程序时,我们应该得到类似于以下屏幕截图的 UI ![]() Flutter RichText Widget有时我们想**显示带有多种样式(例如粗体、斜体、下划线、不同颜色、不同字体或所有内容同时)的行或段落**。在这种情况下,我们应该使用 RichText Widget,它允许我们在不切换许多 Widgets 的情况下执行多种文本样式。 RichText 是 Flutter 中一个非常有用的 Widget,用于在 UI 上显示具有多种样式的文本段落。在 Widget 内部,我们可以通过提供一个**TextSpan** Widget 的**树**来拥有不同的样式。每个 TextSpan 都可以设置自己的样式以覆盖默认样式。 RichText 结构下图解释了 RichText Widget 的结构。在此图像中,父 TextSpan 具有自己的 style 属性和一个 text 参数,然后它可能包含几个具有自己 style 属性的子 TextSpan。 ![]() 从上面的概述中,现在我们将看到如何在我们的应用程序中使用这个 Widget。 示例 假设我们的应用程序有一个**登录屏幕**和一个创建**新用户帐户**的选项。创建新用户帐户部分结合了常规文本和彩色文本,如下面的屏幕所示 ![]() 在上图中,我们可以看到文本**“没有帐户?注册”**是一行文本,其中最后一部分是可以点击的单词,它将用户导航到注册页面。要制作这种类型的文本,我们将**它分成两部分**。第一部分使用**父** TextSpan 并输入文本**“没有帐户?”**,并使用**黑色**颜色。第二部分使用**子** TextSpan 并输入文本**“注册”**,并使用**蓝色**颜色。请参阅以下代码 由于“注册”是可点击的文本,因此我们需要在此部分实现**onTap()**操作。TextSpan 包含**TapGestureRecognizer()**,它实现了 onTap() 操作。在我们的示例中,我们将使用 recognizer 属性使文本可点击。让我们显示整个代码段以更清楚地理解它。 在您使用的 IDE 中创建一个新项目。打开项目,导航到 lib 文件夹,并将以下代码替换为**main.dart**文件。 输出 当我们在模拟器或设备上运行此应用程序时,我们应该得到类似于以下屏幕截图的 UI ![]() 如何在 Flutter 的文本 Widget 中显示图标?有时,开发人员需要使用文本 Widget 显示一个**图标**。为此,Flutter 在 RichText() Widget 内部提供了一个**WidgetSpan()**,用于向文本 Widget 添加图标。以下示例以一种简单的方式解释了它 输出 当我们在模拟器或设备上运行此应用程序时,我们应该得到类似于以下屏幕截图的 UI ![]() 下一个主题Flutter TextField |
我们请求您订阅我们的新闻通讯以获取最新更新。