Метод build
Метод build класса StatelessWidget принимает BuildContext и возвращает один Widget. Фреймворк вызывает его при первой отрисовке и когда у предка меняются параметры.
Синтаксис
Widget build(BuildContext context)
Параметры
| Параметр | Описание |
|---|---|
context |
Место виджета в дереве. Через него читают тему и ищут предков. Обязательный аргумент. |
Пример
Давайте вернём Text из build:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: PlainText(),
),
),
),
);
}
class PlainText extends StatelessWidget
{
const PlainText({super.key});
@override
Widget build(BuildContext context)
{
return const Text('abcde');
}
}
На экране build вернёт Text с 'abcde'.
Пример
Давайте прочитаем цвет темы внутри build:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
theme: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue)),
home: Scaffold(
body: Center(
child: ThemeLabel(),
),
),
),
);
}
class ThemeLabel extends StatelessWidget
{
const ThemeLabel({super.key});
@override
Widget build(BuildContext context)
{
final color = Theme.of(context).colorScheme.primary;
return Text('12345', style: TextStyle(color: color));
}
}
На экране текст '12345' окрасится основным цветом темы.
Смотрите также
-
класс
StatelessWidget,
к которому относится методbuild -
метод
build,
который так же собирает UI уState -
класс
BuildContext,
который передаётся вbuild -
класс
Builder,
который вызываетbuildс новым контекстом