自定义颜色颤动主题

use*_*983 1 dart flutter flutter-layout

我正在尝试在我的颤振主题上使用自定义颜色,如下所示:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'Onelog',
        theme: ThemeData(
          primarySwatch: MyColors.navy,
          primaryTextTheme: TextTheme(title: TextStyle(color: Colors.black)),
        ),
        //Code...
  }
}

class MyColors {
  static const Color navy = const Color(0xFF162A49);
}
Run Code Online (Sandbox Code Playgroud)

但这说明 Color 不是 Material color 的子类型

Mar*_*lla 6

要添加“新” MaterialColor,您需要MaterialColor使用它们的所有亮度实例化一个新的:

class MyColors {

  static const MaterialColor navy = MaterialColor(
    0xFF162A49,
    <int, Color>{
      50: Color(0xFF162A49),
      100: Color(0xFF162A49),
      200: Color(0xFF162A49),
      300: Color(0xFF162A49),
      400: Color(0xFF162A49),
      500: Color(0xFF162A49),
      600: Color(0xFF162A49),
      700: Color(0xFF162A49),
      800: Color(0xFF162A49),
      900: Color(0xFF162A49),
    },
  );
}
Run Code Online (Sandbox Code Playgroud)

您可以通过添加不透明度(OxFF 到 0x00)来改善这一点。一旦你这样做了,就像你现在所做的那样使用它。