Класс ThemeData во Flutter определяет конфигурацию общей отображаемой темы для MaterialApp или для дерева виджетов в приложении. Данное свойство MaterialApp можно использовать для настройки внешнего вида всего приложения. Если вы хотите в одном из виджетов (экранов приложения) изменить цвет или иное, то вам достаточно переопределить в верхней части поддерева Theme.
Т.е. иными словами, если у вас всегда будет применяться зеленый цвет во всех AppBar экранов в приложении, то вы можете всего лишь один раз задать в primaryColor: Colors.green и всегда у вас по умолчанию будет отображаться зеленый цвет. Это очень удобно, когда вы вдруг решили изменить цвет всех AppBar-ов, и вам не надо менять в каждом экране, достаточно просто его изменить в ThemeData после MaterialApp
Пример использования:
MaterialApp(
theme: ThemeData(
primaryColor: Colors.green,
accentColor: Colors.white,
textTheme: TextTheme(bodyText2: TextStyle(color: Colors.black)),
),
home: Scaffold(
appBar: AppBar(
title: const Text('ThemeData демонстрация'),
),
floatingActionButton: FloatingActionButton(
child: const Icon(Icons.add),
onPressed: () {},
),
body: Center(
child: Text(
'Кнопка была нажата 0 раз',
),
),
),
)