'TextSpan' 类型的值不能从方法 'build' 中被 return 编辑,因为它有一个 return 类型的 'Widget'

A value of type 'TextSpan' can't be returned from the method 'build' because it has a return type of 'Widget'

我需要创建自定义 SpanText,但我发现了这个问题。 'TextSpan' 类型的值无法从方法 'build' 中 return 编辑,因为它的 return 类型为 '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();
  }
}

根据documentation

To paint a TextSpan on a Canvas, use a TextPainter. To display a text span in a widget, use a RichText. For text with a single style, consider using the Text widget.

因此您的 TextSpan 需要 RichText 作为 parent。

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

参考 TextSpan here

引用 RichText here

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

您的结果屏幕->