【问题标题】:The argument type 'Color?' can't be assigned to the parameter type 'MaterialColor?参数类型“颜色?”不能分配给参数类型 'MaterialColor?
【发布时间】:2021-08-27 23:48:57
【问题描述】:

我想在颤动中设置背景 Colors.yellow[700],但是当我添加符号“[]”或 Colors.yellow.shade600 时,我无法设置背景值。它显示错误&错误是

The argument type 'MaterialColor' can't be assigned to the parameter type 'Paint'

【问题讨论】:

    标签: android visual-studio flutter dart


    【解决方案1】:

    如果你想要primarySwatchColors.yellow[700] 作为primaryColor,你必须像这样从颜色Colors.yellow[700] 创建自己的MaterialColor

    final Map<int, Color> _yellow700Map = {
      50: Color(0xFFFFD7C2),
      100: Colors.yellow[100],
      200: Colors.yellow[200],
      300: Colors.yellow[300],
      400: Colors.yellow[400],
      500: Colors.yellow[500],
      600: Colors.yellow[600],
      700: Colors.yellow[800],
      800: Colors.yellow[900],
      900: Colors.yellow[700],
    };
    
    final MaterialColor _yellow700Swatch =
      MaterialColor(Colors.yellow[700].value, _yellow700Map);
    

    然后将其添加为primarySwatch: _yellow700Swatch,,或者如果您只想将背景设置为Colors.yellow[700],您可以使用canvasColor,例如canvasColor: Colors.yellow[700],

    【讨论】:

      【解决方案2】:

      您也可以使用colorScheme 属性并设置如下:

      theme: ThemeData(
          colorScheme: ColorScheme.fromSwatch().copyWith(
      
            primary: const Colors.yellow[700],
            secondary: const Colors.yellow.shade700,
      
            // or from RGB
      
            primary: const Color(0xFF343A40),
            secondary: const Color(0xFFFFC107),
      
          ),
        ),
      

      【讨论】:

        【解决方案3】:

        primarySwatch 只需要 ColorSwatch 而不是 colorShade

        如果你想使用阴影,你可以尝试

            ThemeData(
                primaryColor: Colors.yellow[700]
            )
        

        更多信息primaryColor

        【讨论】:

          猜你喜欢
          • 2018-12-26
          • 2021-08-21
          • 2021-01-09
          • 2021-08-15
          • 2021-12-14
          • 2020-11-29
          • 2021-06-05
          • 2022-01-16
          • 2021-08-18
          相关资源
          最近更新 更多