“TextSpan”类型的值无法从“build”方法返回,因为它的返回类型为“Widget”

问题描述 投票:0回答:3

我需要创建一个自定义 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();
  }
}
flutter widget
3个回答
1
投票

根据文档

要在画布上绘制 TextSpan,请使用 TextPainter。要在小部件中显示文本范围,请使用 RichText。对于具有单一样式的文本,请考虑使用文本小部件。

所以你的

TextSpan
需要有一个
RichText
作为父级。


0
投票

尝试下面的代码希望对您有帮助。

请参阅 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,
            ),
          )
        ],
      ),
    );
  }
}

您的结果屏幕->


0
投票
TextSpan buildTextSpan({required BuildContext context, TextStyle?style}) {return TextSpan(
style: style,
text: 'your text two',
children: const <TextSpan>[
  TextSpan(text: 'your text two'),
],);}
© www.soinside.com 2019 - 2024. All rights reserved.