【问题标题】:ThemeData primarySwatch attribute cannot use my custom MaterialColorThemeData primarySwatch 属性不能使用我的自定义 MaterialColor
【发布时间】:2019-12-20 18:15:12
【问题描述】:

我正在创建自己的 MaterialColor,如下所示:

Map<int, Color> pokeballRedSwatch = {
  50: Color.fromRGBO(238, 21, 21, 0.1),
  100: Color.fromRGBO(238, 21, 21, 0.2),
  200: Color.fromRGBO(238, 21, 21, 0.3),
  300: Color.fromRGBO(238, 21, 21, 0.4),
  400: Color.fromRGBO(238, 21, 21, 0.5),
  500: Color.fromRGBO(238, 21, 21, 0.6),
  600: Color.fromRGBO(238, 21, 21, 0.7),
  700: Color.fromRGBO(238, 21, 21, 0.8),
  800: Color.fromRGBO(238, 21, 21, 0.9),
  900: Color.fromRGBO(238, 21, 21, 1.0),
};
MaterialColor pokeballRed = MaterialColor(0xffee1515, pokeballRedSwatch);

我是这样使用它的:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: pokeballRed,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

我收到此错误:

'package:flutter/src/widgets/title.dart': Failed assertion: line 24 pos 15: 'color != null && color.alpha == 0xFF': is not true.

但是,当我用这个替换 primarySwatch 时:

Map<int, Color> pokeballWhiteSwatch = {
  50: Color.fromRGBO(240, 240, 240, 0.1),
  100: Color.fromRGBO(240, 240, 240, 0.2),
  200: Color.fromRGBO(240, 240, 240, 0.3),
  300: Color.fromRGBO(240, 240, 240, 0.4),
  400: Color.fromRGBO(240, 240, 240, 0.5),
  500: Color.fromRGBO(240, 240, 240, 0.6),
  600: Color.fromRGBO(240, 240, 240, 0.7),
  700: Color.fromRGBO(240, 240, 240, 0.8),
  800: Color.fromRGBO(240, 240, 240, 0.9),
  900: Color.fromRGBO(240, 240, 240, 1.0),
};
MaterialColor pokeballWhite = MaterialColor(0xfff0f0f0, pokeballWhiteSwatch);

运行良好。

据我所知,颜色不为空,两种情况下的 alpha 字节都应该是 0xff。有什么想法我哪里出错了,或者我应该在 github 上为 Flutter 打开一个问题?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    据说重建应用程序解决了我的问题。仍然不确定为什么会修复它,因为我同时编写了所有这些,并热重新加载以测试每个。

    【讨论】:

    • 有时会发生。技术太奇怪了:P
    【解决方案2】:

    在此行末尾添加 withAlpha

        MaterialColor pokeballRed = MaterialColor(0xffee1515, pokeballRedSwatch).withAlpha(255);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 2010-12-05
      相关资源
      最近更新 更多