You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Flutter3.10(Dart3)后使用PreferredSizeWidget作为mixin报错

解决Flutter 3.10(Dart 3)中PreferredSizeWidget无法作为mixin的问题

问题原因

Dart 3对mixin的使用规则做了严格限制:只有用mixin关键字定义的类,或者用mixin class标记的类,才能通过with关键字混入。而PreferredSizeWidget是普通抽象类,不符合mixin的要求,所以会触发报错。

解决方法

把with替换成implements,然后实现PreferredSizeWidget要求的preferredSize属性即可:

class MyAppBar extends StatelessWidget implements PreferredSizeWidget {
  @override
  Size get preferredSize => const Size.fromHeight(kToolbarHeight); // 可根据需求自定义高度

  @override
  Widget build(BuildContext context) {
    // 这里写你的自定义AppBar实现逻辑
    return AppBar(
      title: const Text('自定义标题'),
    );
  }
}

补充说明

PreferredSizeWidget本质是一个接口类,核心作用是定义preferredSize属性,用来告知父组件当前widget的首选尺寸。用implements实现接口是符合Dart 3语法规范的正确做法。

内容的提问来源于stack exchange,提问作者Soroush Yousefpour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:31:59