在 flutter v2.5 中迁移强调色

migrating accent color in flutter v2.5

在 flutter 2.5 更新后,我的主题数据有点崩溃,不再接受 accentColor。我看了一下文档,发现它被“重命名”为 colorScheme.secondary。但无论我尝试什么,我都无法让它为我工作。

这是我当前的代码:

class Themes {
  static final lightTheme = ThemeData(
    accentColor: Palette.orange,
    colorScheme: ColorScheme.light(),
    floatingActionButtonTheme: FloatingActionButtonThemeData(
      backgroundColor: Palette.orange,
      foregroundColor: Colors.white,
    ),
    scaffoldBackgroundColor: Colors.white,
  );

  static final darkTheme = ThemeData(
    accentColor: Palette.orange,
    colorScheme: ColorScheme.dark(),
    floatingActionButtonTheme: FloatingActionButtonThemeData(
      backgroundColor: Palette.orange,
      foregroundColor: Colors.white,
    ),
    scaffoldBackgroundColor: Colors.grey[900],
  );
}

flutter 2.5 变化多多

尝试使用下面的代码希望对您有所帮助

 theme: ThemeData(
      colorScheme:  Theme.of(context).colorScheme.copyWith(secondary: Color(accentColor))
),

更多信息请查看官方文档here


final ThemeData theme = ThemeData();
MaterialApp(
  theme: theme.copyWith(
    colorScheme: theme.colorScheme.copyWith(secondary: myColor),
  ),
  //...
)

迁移前的代码:

Color myColor = Theme.of(context).accentColor;

迁移后的代码:

Color myColor = Theme.of(context).colorScheme.secondary;