Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The class 'PreferredSizeWidget' can't be used as a mixin because it's neither a mixin class nor a mixin

After upgrading to Flutter 3.10 (and Dart 3), I am getting this error:

The class 'PreferredSizeWidget' can't be used as a mixin because it's neither a mixin class nor a mixin.

The current version of the code:

class MyAppBar extends StatelessWidget with PreferredSizeWidget {
  ...
}
like image 696
Hossein Yousefpour Avatar asked Aug 30 '25 15:08

Hossein Yousefpour


1 Answers

If you get the same error, just change the with with the implements like this:

class MyAppBar extends StatelessWidget implements PreferredSizeWidget {
  ...
}

Description:

In Dart 3, the rules around mixins have been made stricter compared to previous versions. As mentioned in the release notes, any class could be used as a mixin before Dart 3, as long as it had no declared constructors and no superclass other than Object. In Dart 3, classes declared in libraries at language version 3.0 or later can't be used as mixins unless they are explicitly marked with the mixin keyword.

So, PreferredSizeWidget is not declared as a mixin and does not have the mixin keyword in its definition. This is why the error is encountered when using it as a mixin.

like image 54
Hossein Yousefpour Avatar answered Sep 02 '25 17:09

Hossein Yousefpour