参数类型“Widget”不能分配给参数类型“PreferredSizeWidget?”

Posted

技术标签:

【中文标题】参数类型“Widget”不能分配给参数类型“PreferredSizeWidget?”【英文标题】:The argument type 'Widget' can't be assigned to the parameter type 'PreferredSizeWidget?' 【发布时间】:2021-08-23 16:17:04 【问题描述】:
class DetailChatPage extends StatelessWidget 
  @override
  Widget build(BuildContext context) 
    Widget header() 
      return PreferredSize(
        preferredSize: Size.fromHeight(70),
        child: AppBar(
          backgroundColor: backgroundColor1,

        ),
      );
    

    return Scaffold(
      backgroundColor: backgroundColor3,
      appBar: header(),
    );
  

我的代码中有一个错误是 参数类型“Widget”不能设置为参数类型“PreferredSizeWidget?” 如何解决这个问题

【问题讨论】:

【参考方案1】:

发生这种情况是因为您使用 Widget 类型声明了您的 header 方法。您应该改为使用 PreferredSizeWidget 类型声明它。

PreferredSizeWidget header() 
  return PreferredSize(
    preferredSize: Size.fromHeight(70),
    child: AppBar(
      backgroundColor: backgroundColor1,
    ),
  );

【讨论】:

【参考方案2】:

改变

Widget header() 
  return PreferredSize(
    preferredSize: Size.fromHeight(70),
    child: AppBar(
      backgroundColor: backgroundColor1,

    ),
  );

PreferredSize header() 
  return PreferredSize(
    preferredSize: Size.fromHeight(70),
    child: AppBar(
      backgroundColor: backgroundColor1,

    ),
  );

【讨论】:

以上是关于参数类型“Widget”不能分配给参数类型“PreferredSizeWidget?”的主要内容,如果未能解决你的问题,请参考以下文章

Flutter中的参数类型'Widget Function(BuildContext)'不能分配给参数类型'Widget Function(BuildContext,Widget)'错误

参数类型“Widget”不能分配给参数类型“PreferredSizeWidget?”。颤动中的appBar发生错误[重复]

Flutter 参数类型 'List<dynamic>' 不能分配给参数类型 'List<Widget>'

参数类型“Future<bool>”不能分配给参数类型“Widget”[Flutter]

参数类型“Widget Function(Categoria)”不能分配给参数类型“dynamic Function(Child)”。 (型号)颤振

参数类型“List<dynamic>”不能分配给参数类型“List<Widget>”。我究竟做错了啥?小飘飘在这里