Класс Widget
Абстрактный класс Widget задаёт, как собрать
BuildContext
и дочерние элементы. Сами экземпляры Widget
лёгкие и неизменяемые: логику и память выносят в
State
или в параметры. Обычно наследуют
StatelessWidget
или StatefulWidget,
а не Widget напрямую.
Синтаксис
abstract class Widget {
const Widget({this.key});
final Key? key;
}
Пример
Давайте объявим виджет через StatelessWidget, который наследует Widget:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: HelloLabel(),
),
),
),
);
}
class HelloLabel extends StatelessWidget
{
const HelloLabel({super.key});
@override
Widget build(BuildContext context)
{
return const Text('abcde');
}
}
На экране появится текст 'abcde'
из виджета, унаследованного от Widget.
Пример
Давайте передадим key у корневого виджета:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Text(
'12345',
key: const ValueKey('label'),
),
),
),
),
);
}
На экране строка '12345' будет связана
с ключом для отличия от других Text.
Смотрите также
-
функция
runApp,
которая ставит корневойWidgetна экран -
класс
StatelessWidget,
который реализуетbuildбезState -
класс
StatefulWidget,
который создаёт объектState -
класс
InheritedWidget,
который передаёт данные вниз по дереву