📅  最后修改于: 2023-12-03 15:00:49.171000             🧑  作者: Mango
Flutter的TextSpan小部件是用于在一段文本中实现高级文本样式的强大工具。它可以用于创建具有不同颜色、字体、大小、装饰和链接的文本部分。
TextSpan小部件可以与RichText小部件一起使用。以下是一个简单的例子,用于创建具有不同样式的文本:
RichText(
text: TextSpan(
text: 'Hello ',
style: TextStyle(color: Colors.black),
children: <TextSpan>[
TextSpan(
text: 'world',
style: TextStyle(
color: Colors.red,
fontWeight: FontWeight.bold,
decoration: TextDecoration.underline,
fontStyle: FontStyle.italic,
fontSize: 25,
),
),
],
),
)
该代码将在屏幕上显示"Hello world",其中“Hello”为黑色文本,而“world”为红色、粗体、斜体、带下划线的文本,字体大小为25。
TextSpan可以被嵌套,因此可以创建具有多个不同样式的文本部分。以下是一个包含嵌套TextSpan的例子:
RichText(
text: TextSpan(
text: 'Who is your favourite artist? ',
style: TextStyle(color: Colors.black),
children: <TextSpan>[
TextSpan(
text: 'Leonardo da Vinci',
style: TextStyle(
color: Colors.red,
fontWeight: FontWeight.bold,
decoration: TextDecoration.underline,
fontStyle: FontStyle.italic,
fontSize: 25,
),
children: <TextSpan>[
TextSpan(
text: ' was a brilliant artist and inventor.',
style: TextStyle(
fontStyle: FontStyle.normal,
fontSize: 20,
),
),
],
),
],
),
)
在此示例中,“Leonardo da Vinci”将显示为具有给定样式的文本,而“was a brilliant artist and inventor.”将具有不同的样式。嵌套TextSpan是一种非常有用的模式,可以轻松地创建具有复杂格式的文本。
TextSpan小部件还可以用于创建链接,以在文本中添加交互性。以下是一个示例:
RichText(
text: TextSpan(
text: 'Visit Flutter homepage',
style: TextStyle(color: Colors.black),
children: <TextSpan>[
TextSpan(
text: '',
style: TextStyle(color: Colors.blue),
recognizer: TapGestureRecognizer()
..onTap = () {
launch('https://flutter.dev');
},
),
],
),
)
在此示例中,“Visit Flutter homepage”将以黑色显示,而“Flutter”将以蓝色高亮显示并可点击。点击文本将打开Flutter官方网站。
Flutter的TextSpan小部件是一种强大的工具,用于在文本中实现复杂的格式和交互性。它使得创建具有不同颜色、字体、大小、装饰和链接的文本变得轻而易举,同时还可以嵌套子级TextSpan。