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