Sobes.tech
Back to questions
Middle
189
questionbank

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

Sobes Copilot

Get answers in real time

Answer from AI

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 действителен только в течение жизненного цикла соответствующего виджета.