#flutter #dart
Вопрос:
Я работаю над учебными пособиями «Напиши свое первое приложение Flutter» и без проблем перешел к части 2, шагу 7. Однако на линии:
foregroundColor: Colors.black,
VSCode подчеркивает foregroundColor
и говорит:
The named parameter 'foregroundColor' isn't defined
Он не изменил цвет после горячей перезагрузки, и он не будет создаваться с ошибкой, говорится в консоли отладки:
lib/main.dart:17
foregroundColor: Colors.black,
^^^^^^^^^^^^^^^
: Context: Found this candidate, but the arguments don't match.
../…/material/theme_data.dart:219
factory ThemeData({
^
Вот полный build
виджет (в MyApp
классе):
Widget build(BuildContext context) {
return MaterialApp(
title: 'Startup Name Generator',
theme: ThemeData(
backgroundColor: Colors.white,
foregroundColor: Colors.black,
),
home: RandomWords(),
);
}
Обновить:
У меня не было
appBarTheme: const AppBarTheme(
//themes here
),
внутри ThemeData
, как показал учебник. После добавления он работает!
Ответ №1:
Данные темы Flutter не предоставляют атрибут переднего плана. Но данные appBarThemeData обеспечивают это. Подобный этому
theme: ThemeData(
// This is the theme of your application.
//
// Try running your application with "flutter run". You'll see the
// application has a blue toolbar. Then, without quitting the app, try
// changing the primarySwatch below to Colors.green and then invoke
// "hot reload" (press "r" in the console where you ran "flutter run",
// or simply save your changes to "hot reload" in a Flutter IDE).
// Notice that the counter didn't reset back to zero; the application
// is not restarted.
backgroundColor: Colors.red,
appBarTheme: const AppBarTheme(foregroundColor: Colors.red),
primarySwatch: Colors.blue,
),
Ответ №2:
Я думаю, вы имеете в виду эту кодовую таблицу. https://codelabs.developers.google.com/codelabs/first-flutter-app-pt2#6
Не волнуйся, здесь какая — то ошибка. Я уже сообщал об этом. В текущем классе ThemeData нет атрибута с именем Цвет переднего плана.
Также теперь команда flutter предлагает использовать ColorScheme для определения цветов для приложения. Вот пример того же самого.
theme: ThemeData(
colorScheme: ColorScheme.light(
primary: Colors.blue,
secondary: Colors.red,
background: Colors.white,
),
appBarTheme: AppBarTheme(
backgroundColor: Colors.white,
elevation: 0,
iconTheme: IconThemeData(color: AppColor.primaryColor)),
scaffoldBackgroundColor: Colors.white);