Класс StatelessWidget
Класс StatelessWidget наследует
Widget
и переопределяет build.
Поля задают через конструктор, память между кадрами
не хранят. Если нужен счётчик или анимация,
берут StatefulWidget.
Синтаксис
class MyWidget extends StatelessWidget {
const MyWidget({super.key});
@override
Widget build(BuildContext context) {
return const Text('abcde');
}
}
Параметры
| Параметр | Описание |
|---|---|
key |
Необязательный ключ, который отличает виджет среди соседей при перестройке дерева. |
Методы
| Метод | Описание |
|---|---|
build |
Собирает дочернее дерево по текущему контексту. |
Пример
Давайте выведем подпись через StatelessWidget:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Caption(text: 'abcde'),
),
),
),
);
}
class Caption extends StatelessWidget
{
const Caption({super.key, required this.text});
final String text;
@override
Widget build(BuildContext context)
{
return Text(text, style: const TextStyle(fontSize: 20));
}
}
На экране крупным шрифтом появится 'abcde'.
Пример
Давайте передадим другой текст через параметр конструктора:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Caption(text: '12345'),
),
),
),
);
}
class Caption extends StatelessWidget
{
const Caption({super.key, required this.text});
final String text;
@override
Widget build(BuildContext context)
{
return Text(text);
}
}
На экране будет строка '12345' без изменения логики build.
Смотрите также
-
метод
build,
который собирает интерфейс виджета -
класс
StatefulWidget,
который хранит изменяемое состояние -
класс
Builder,
который даётBuildContextдля вложенногоbuild -
функция
runApp,
которая запускает дерево виджетов