Что такое Scaffold в Flutter?

«Что такое Scaffold в Flutter?» — вопрос из категории Flutter виджеты, который задают на 67% собеседований Flutter Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Scaffold — это базовый виджет-макет в Flutter, который реализует базовую визуальную структуру страницы в соответствии с Material Design. Он предоставляет готовые слоты для стандартных компонентов интерфейса.

Основные элементы, которые можно разместить в Scaffold:

  • appBar: Верхняя панель (AppBar).
  • body: Основное содержимое страницы.
  • floatingActionButton: Плавающая кнопка действия (FAB).
  • drawer: Выдвижная боковая панель (слева).
  • endDrawer: Выдвижная панель справа.
  • bottomNavigationBar: Нижняя панель навигации.
  • bottomSheet: Всплывающая панель снизу.

Пример использования:

Scaffold(
  appBar: AppBar(
    title: Text('Главная'),
    actions: [
      IconButton(icon: Icon(Icons.search), onPressed: () {}),
    ],
  ),
  drawer: Drawer(
    child: ListView(
      children: [
        ListTile(title: Text('Профиль'), onTap: () {}),
        ListTile(title: Text('Настройки'), onTap: () {}),
      ],
    ),
  ),
  body: Center(
    child: Text('Привет, мир!'),
  ),
  floatingActionButton: FloatingActionButton(
    onPressed: () {},
    child: Icon(Icons.add),
  ),
  bottomNavigationBar: BottomNavigationBar(
    items: [
      BottomNavigationBarItem(icon: Icon(Icons.home), label: 'Главная'),
      BottomNavigationBarItem(icon: Icon(Icons.settings), label: 'Настройки'),
    ],
  ),
);

Почему он важен: Scaffold избавляет разработчика от ручного управления расположением, отступами и поведением (например, автоматическим сдвигом контента при появлении клавиатуры или SnackBar) этих стандартных элементов, обеспечивая согласованный и идиоматичный для платформы вид.