我需要创建一个自定义 SpanText,但我发现了这个问题。 “TextSpan”类型的值无法从“build”方法返回,因为它的返回类型为“Widget”。
代码是:
class StareWidget extends StatelessWidget {
const StareWidget({Key? key, required this.text}) : super(key: key);
final String text;
@override
Widget build(BuildContext context) {
return TextSpan();
}
}
根据文档
要在画布上绘制 TextSpan,请使用 TextPainter。要在小部件中显示文本范围,请使用 RichText。对于具有单一样式的文本,请考虑使用文本小部件。
所以你的
TextSpan
需要有一个 RichText
作为父级。
尝试下面的代码希望对您有帮助。
请参阅 TextSpan 此处
请参阅 RichText 此处
class StareWidget extends StatelessWidget {
const StareWidget({
Key? key,
required this.text,
}) : super(key: key);
final String text;
@override
Widget build(BuildContext context) {
return Text.rich(
TextSpan(
text: 'This is textspan ',
children: <InlineSpan>[
TextSpan(
text: 'Widget in flutter',
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
),
)
],
),
);
}
}
TextSpan buildTextSpan({required BuildContext context, TextStyle?style}) {return TextSpan(
style: style,
text: 'your text two',
children: const <TextSpan>[
TextSpan(text: 'your text two'),
],);}