Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
771 of 1024 menu
◀ ▶

Метод 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
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить