Назад к вопросам
Middle
153
questionbank

Что такое BuildContext в Flutter и как он используется?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

BuildContext — это ручка, указывающая на местоположение виджета в дереве виджетов. Каждый виджет имеет свой BuildContext.

Он используется:

  • Для доступа к данным из предков: Например, Theme.of(context) для получения текущей темы.
  • Для поиска виджетов-предков: Navigator.of(context) для навигации.
  • Для выполнения действий, зависящих от положения в дереве: Отображение SnackBar через ScaffoldMessenger.of(context).
  • Для получения размера и положения виджета: Через BuildContext.size или BuildContext.findRenderObject().

Пример:

// Доступ к ThemeData
ThemeData theme = Theme.of(context);

// Навигация
Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => NextScreen()),
);

// Отображение SnackBar
ScaffoldMessenger.of(context).showSnackBar(
  SnackBar(content: Text('Hello')),
);

BuildContext действителен только в течение жизненного цикла соответствующего виджета.