classMyWidgetextendsStatelessWidget { @overrideWidgetbuild(BuildContext context) {// @override - переопределяет методы наследуемых классов. Это необходимо для того, чтобы использовать именно свою реализацию.Widgetbuild(BuildContext context) {// Метод build должен нам вернуть тип Widget, а BuildContext это тип возвращаемого параметра context }}//Так как все есть виджет, то:build(context) {// Метод принимает в качестве параметра context - это особый тип объекта, который автоматически передается в метод сборки. Он хранит в себе Метаинформацию о приложении.}extends- Наследование для Виджетов:1. StatelessWidget2. StatefulWidget
Каждый передеанный или собранный Виджет имеет свой уровень сборки(Level)
Данный виджет имеет объект состояния State<Object> в котором хранится
информация о текущем состоянии виджета.
Структура виджета
class name extendsStatefulWidget {name({Key? key}) : super(key: key);// Stateful - не может существовать сам по себе, ему необходим класс,// который будет хранить состояние этого виджета.@overrideState<name> createState() =>_nameState();// Метод createState возвращает экземпляр класса State.}//Класс хранящий состояние Stateful и наследующий класс состояния.class _nameState extendsState<name> {bool _loading; // Динамическая переменная хранящая состояние загрузки(условно)double _progressLoad; // Динамическая переменная хранящая прогресс загрузки.@overrideWidgetbuild(BuildContext context) {returnContainer(); }}
Жизненый цикл StateFulWidget
Layout - Виджеты
Разделяются на две группы:
Видимые - ввод и вывод информации.
Невидимые - Упорядочивают, ограничивают и выравнивают видимые виджеты.
Виджет Expanded -
Распределяет свободное пространство между другими элементами.