@pauline
Ошибка "the superclass 'preferredsize' doesn't have a zero argument constructor" может возникнуть при обновлении приложения на Flutter 2 из-за изменений в архитектуре фреймворка. Эта ошибка происходит, когда класс наследуется от класса PreferredSize, который требует обязательного вызова конструктора с параметрами.
Для решения этой проблемы вам нужно изменить наследование вашего класса и добавить конструктор с параметрами. Вы можете сделать это следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import 'package:flutter/material.dart'; class MyCustomAppBar extends PreferredSize { MyCustomAppBar({required Widget child}) : super( preferredSize: Size.fromHeight(kToolbarHeight), child: child, ); @override Widget build(BuildContext context) { // Ваш код для создания кастомного AppBar } } |
В этом примере мы создаем кастомный AppBar и наследуемся от класса PreferredSize, но добавляем конструктор с параметрами, который вызывает конструктор суперкласса и передает ему значение preferredSize
и child
.
После этого вы можете использовать ваш кастомный AppBar следующим образом:
1 2 3 4 5 6 |
Scaffold(
appBar: MyCustomAppBar(
child: Text('Мой кастомный AppBar'),
),
body: Container(),
);
|
Это должно решить проблему "the superclass 'preferredsize' doesn't have a zero argument constructor" при миграции на Flutter 2.